Vous êtes sur la page 1sur 7

CS5103

Software Engineering

Lecture 01 Welcome!
Introduction and Administration

2 UTSA CS5103

Course Meetings, Web Pages, etc.


Course Instructor

¾ Name: ¾ Course Meetings:


Dr. Jianwei Niu Sat. 9:00 – 11:45
¾ Office: in classroom UTSA-1604 Science Building 3.02.10A
SB 4.01.36
¾ Office Hours:
¾ Office Phone:
By appointment
458-7360
¾ Email: ¾ Course Web Page:
http://www.cs.utsa.edu/~niu/teaching/CS5103
niu@cs.utsa.edu

3 UTSA CS5103 4 UTSA CS5103

1
Grading Scheme Course Textbooks

¾ Midterm: 20% ¾ Jim Arlow and Ila Neustadt, “UML 2 and the Unified
¾ Final: 20% Process: Practical Object-Oriented Analysis and Design”,
¾ Projects and assignments: 50% 2nd Edition, Addison-Wesley, 2005. (Required)
¾ Paper presentation and participation: 10%

¾ Ian Sommerville, “Software Engineering”, 7th or 8th


Editions, Addison-Wesley. (Optional)

5 UTSA CS5103 6 UTSA CS5103

Course Topics What Is Software

¾ Software Development Process ¾ Software is a collection of artifacts


¾ Software Requirements Analysis – Computer programs

¾ Unified Modeling Language (UML) – Data

¾ Specification Notations – Documents

¾ Software Architecture Design ¾ Characteristics of software


– Software is either customized product or generic product
¾ Automated Analysis Tools
– Software is a logical system
– Software evolves

7 UTSA CS5103 8 UTSA CS5103

2
What Is Software What Is Software Engineering

¾ Attribute of good software ¾ [Software engineering is] the establishment and use of
– Dependability sound engineering principles in order to obtain economically
availability, reliability, security, and safety software that is reliable and works efficiently on real
– Efficiency machines
processing time, memory utilization, responsiveness, by Prof. Fritz Bauer at the 1968 NATO conference on software
technology, in Garmisch, Germany.
– Usability
appropriate user interface and adequate documentation
¾ In short, software engineering is about developing quality
software in a predictable way.
– Maintainability
ease of change ¾ Key phrases: engineering discipline, all aspects of software
production

9 UTSA CS5103 10 UTSA CS5103

What Is Software Engineering Software Process

¾ Software engineering is a discipline that ¾ Software process is a set of activities used for the
integrates development of software systems
– Process – Communication
provides a framework for software development – Planning
– Methods – Modeling
provide “how to’s” for building software – Construction
– Tools – Deployment
provide automated or semi-automated support for the process
and the methods

11 UTSA CS5103 12 UTSA CS5103

3
Software Process Software Process Models

¾ Each activity is accomplished by a collection of tasks, such as ¾ A process model describes:


specification, analysis, and validation – What steps you go through
¾ A number of umbrella activities – Which development artifacts are produced, and when
– Software project tracking and control
– How activities are coordinated
– Risk management
– Software quality assurance ¾ Different process models
– Formal technical reviews – The waterfall model
– Measurement – The prototyping model
– Software configuration management – The iterative model
– Reusability management
– The incremental model
– Work product preparation and production
– Others: RUP, agile methods, component-based SE, and …
13 UTSA CS5103 14 UTSA CS5103

The Waterfall Model The Waterfall Model

¾ The classic lifecycle


Requirements
¾ Sequential: each stage completed before the next started
engineering
¾ Mainly used by large companies
¾ Problems
Design – But real projects are rarely sequential
– Customer has to wait for product until the end
Implementation – Hard to state requirements up-front
– Heavy documentation

Testing
15 UTSA CS5103 16 UTSA CS5103

4
The Incremental Model The Incremental Model

¾ Development done in defined cycles


Requirements ¾ All requirements analysis is done in one phase
engineering
¾ Each increment produces deliverable

Design and ¾ Still has the problem of having to elicit all the requirements
implement up front

Test

17 UTSA CS5103 18 UTSA CS5103

The Prototype Model The Prototype Model

Requirements ¾ Using prototype for discovering requirements


engineering ¾ Particularly good for user interfaces
Design + build
¾ Problems
prototype
Validate – Customer doesn’t like to have to “rebuild” (have to agree to
discard it)
prototype
– Make implementation decisions that you stick with

Formalize
requirements
Design and
implementation
19 Testing 20
UTSA CS5103 UTSA CS5103

5
The Iterative Model Iterative Model

¾ Multiple mini-waterfall-like cycles


Requirements
A working implementation in each iteration as in
engineering
incremental; no throwaways as in prototype
¾ Requirements gathering spreading out over the
Design and
iterations
implementation
¾ Usually with less non-essential artifacts produced
¾ Rational Unified Process (RUP): an example of the
Testing
iterative model specifically for UML

21 UTSA CS5103 22 UTSA CS5103

The Rational Unified Process Model The Rational Unified Process Model

¾ Inception: business case establishment


– Vision
– Scope
– Project feasibility
Inception Elaboration Construction Transition
¾ Elaboration: problem understanding
– Requirements model
– Architecture design
– Risk identification and resolution
¾ Construction: implementation
¾ Transition: deployment

23 UTSA CS5103 24 UTSA CS5103

6
The Rational Unified Process Model Software Process Models

¾ It is a hybrid process model ¾ Every software development group has its own process
– Elements from different models
model(s)
– Iteration in each phase and in the whole process ¾ They vary along several dimensions:
– Formal vs. ad hoc
¾ It supports multiple views
– Sequential vs. concurrent
– Dynamic view
– Lots vs. little documentation
– Static view
– …
– Practice view
¾ Requirements gathering spreading out over the
iterations

25 UTSA CS5103 26 UTSA CS5103

Reading Assignments

¾ Sommerville’s Book
– Chapter 1, “Introduction”
– Chapter 4, “Software Process”

27 UTSA CS5103