Beruflich Dokumente
Kultur Dokumente
Sonia Rafaqat
Introduction to Software Engineering
Modeling with UML
Project Organization and Communication
Requirements Elicitation and Analysis
System Design: Decomposing the System
System Design: Addressing Design Goals
Object Design: Reusing Pattern Solutions
Object Design: Specifying Interfaces, Mapping Models to Code, Testing
Rationale Management, Configuration Management, Project Management
Software Life Cycle, Methodologies: Putting It All Together.
1. Object-Oriented Software Engineering: Using UML, Patterns, and Java, Bernd
Bruegge, Allen H. Dutoit, Prentice Hall, 2010 ( or Latest Edition)
2. Object-Oriented Software Construction, Bertrand Meyer, 2nd Edition, Prentice Hall
in 1997 (or Latest Edition)
3. Formal Methods in Computing, M. Ferenczi, and Andras Pataricza , Akademiai
Kiao, 2005 ( or Latest Edition)
4. Code Complete: A practical handbook of software construction, Microsoft Press,
2004. (or Latest Edition)
5. Software Engineering, Ian Sommerville, 8th edition, Addison & Wesley. 2006 (or
Latest Edition)
Marks
1. Assignments (04) : 10
2. Quiz (04) : 10
3. Presentation : 05
4. Mid Term : 25
5. Final Term : 50
Total : 100
Passing Marks : 50
The term software engineering is composed of two words, software and
engineering.
documentations.
to evolve with the end users’ need and the target environment. They
perform many functions; they are built to achieve many different, and often
components. The development process and the software life cycle often
single person. Many systems are so hard to understand, even during their
development phase, that they are never finished: these are called
vaporware.
application.
If the project lasts many years, the staff turn-around is high, requiring
project manager that all changes have been dealt with and that the
system.
So, to deal with all the above mentioned factors and to produce a quality
development with the stated goal of improving the quality, time and budget
efficiency.
According to IEEE
software”
Modeling
software engineers build many different models of the system and of the
application domain.
First, software engineers need to understand the environment in which the
system has to operate. For a train traffic control system, software engineers
software engineers need to know trading rules. The software engineer does
not need to become a fully certified train dispatcher or a stock broker; they
only need to learn the application domain concepts that are relevant to the
domain.
Second, software engineers need to understand the systems they could
build, to evaluate different solutions and trade-offs. Most systems are too
trigger changes to the solution models. Changes can also be caused by new
technology.
capture and understand the context in which each design decision was made.
kinds of Resources.
UML diagrams are easy to understand without full knowledge of the UML
semantics. We can also use UML diagrams when interacting with a client
or a user, even though they may not have any knowledge of UML.
with different backgrounds and interests. The client orders and pays for the
system. The developers construct the system. The project manager plans
and budgets the project and coordinates the developers and the client.
The end users are supported by the system. We refer to all the persons
the project or the system as a role. A role is associated with a set of tasks and
Example
machine that distributes tickets for trains. Travelers have the option of
selecting a ticket for a single trip or for multiple trips, or selecting a time card
for a day or a week. The Ticket Distributor computes the price of the
requested ticket based on the area in which the trip will take place and
whether the traveler is a child or an adult. The Ticket Distributor must be able
transaction, travelers who attempt to pay with large bills, and resource
outages, such as running out of tickets, change, or power. On the next slide
Distributor project.
Systems and Models
We use the term model to refer to any abstraction of the system. A Ticket
project is itself a system that can be modeled. The project schedule, its
budget, and its planned deadlines are models of the development project..
Work Products
start of the project and specified by a contract binding the developers with
the client.
Activities, Tasks, and Resources
with the client what the system will do. Activities can be composed of
called phases.
Activities, Tasks, and Resources
by other tasks. Resources are assets that are used to accomplish work.
manager breaks down the work into tasks and assigns them to resources.
Functional and Nonfunctional Requirements
system.
For example, The user must be able to purchase tickets and The user must
requirements.
activities include
• Requirements Elicitation
• Analysis
• System Design
• Object Design
• Implementation
• Testing
I have provided the notes for introduction to software engineering.
only involve managers, but also most of the other project participants as
• Communication
• Rationale Management
• Software Configuration Management
• Project Management
Communication
system and its application domain, reporting the status of work products,
Rationale Management
considered, the criteria that developers used to evaluate the alternatives, the
available, it can be compared with all the other alternatives that were
developers deal with during development, and thus, the most difficult to
and on-line discussions, represent rationale with issue models, and access
After a baseline has been defined, any change needs to be assessed and
that the system is evolving according to project goals and that the number
of problems introduced into the system is limited.
Project Management
Project management does not produce any artifact of its own. Instead,
planning and budgeting the project during negotiations with the client,
hiring developers and organizing them into teams, monitoring the status of
build models of the application and solution domains to deal with their
artifacts are used for modeling software processes. A general model of the