Software
engineering is the art of problem solving .This course should be viewed as the cornerstone upon which all subsequent project
management and software development activities are based. Skills you learn in
this class will be applied again and again throughout your college , CS or IS careers. Consequently, you should expect to
work hard in this course to develop these skills. It is expected that students will spend at least 3-5 hours or more per week
reading and working on assignments and projects. This course introduces the concepts and methods of information systems analysis
and design and software engineering, with an emphasis on systems analysis methods and tools.
A major focus of the course is a group project.
A software engineer shall be responsible for studying the problems and needs set forth by an organization and for
determining how people, methods, and computer technology can best accomplish improvements. When computer technology is used,
the software engineer shall be responsible for the efficient capture of data
from its business source, the flow of that data to the computer, the processing and storage of that data by the computer,
and the flow of useful and timely information back to business users.
After an overview of the
entire systems development lifecycle, the question of how systems development projects are identified is discussed. Then the focus of the course shifts to the analysis phase where the requirements for an information system
are defined using graphical models and supporting documentation. Coverage of system design emphasizes on architectural design
as well as what is often called external design (or user interface design) rather than software design. In the first part of the course we focus on traditional methods, with an emphasis on process modeling with
data flow diagrams. We will briefly discuss object-oriented analysis at the end
of the course.
The course
focuses on the issues and management techniques involved in the analysis, design, and implementation of information systems.
Most businesses expect their software engineers and system analysts to be knowledgeable of three general areas:
· Interpersonal
skills: The software engineers should be effective in both verbal and written communications, should be able to facilitate
meetings, and should be a competent change agent.
· Information
Systems: The software engineers should be familiar with the general IS concepts such as the Systems Development Life Cycle,
CASE tools, prototyping, process and data modeling tools and techniques, rapid and joint application development, and programming.
· Functional
Business Areas: The software engineers should be familiar with the accounting, marketing, and customer service areas.
This course will focus on items 1 and 2 above to achieve the following outcomes.
Upon completion of this course, you should be able to effectively:
· Understand the concepts
and principles of the systems development life cycle (SDLC), including systems planning, project management, and computer-aided
systems engineering (CASE) tools.
· Prepare and present a
feasibility study/cost benefit analysis
· Use the tools and techniques
of the structured systems analysis methodology to gather, documents and model systems requirements.
· Analyze business processes
and develop process models and data models for an information system.
· Design architectural models
that reflect the design version of data flow diagrams.
· Be familiar with trends
affecting the analysis and design of information systems, including alternative methodologies such as object-oriented analysis
and design.
· Understand object oriented
analysis concepts in terms of utilization, design, and implementation.
· Prototype a user interface
for a new information system.
· Plan and organize an information
systems development project.
· Work successfully with
a group of your peers on a common problem.
Specifically, upon completion of this course, you should be able to effectively:
· Define
the software engineer’s role and responsibilities in a typical organization.
· Define
systems planning, systems analysis, systems design, systems implementation, and systems support.
· Describe
a phased approach to information systems development and describe cross-life activities that overlap the entire life cycle.
· Compare
and contrast the systems development life cycle and system development techniques, including structured programming, modern
structured analysis, structured design, information engineering, and prototyping.
· Define and perform data modeling and
process modeling, and explain why they are important..