Chapter 2 Software Engineering Overview
Chapter 2 Software Engineering Overview
• Documentation
• Commonly, models are becoming part of
software.
• Anything that directs the underlying execution
of software on our computer and describes
that software is considered all part of what we
control in software
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 2: Slide 4
What is a Software System?
• A Typical Program
– Typically 50-500 lines of code
– Developed by one person
• Examples
– Mechanical engineering (design parts and tools)
– Civil engineering – design structures, roads and
bridges
– Chemical engineering
– Electrical engineering
– Nuclear engineering
– Aeronautical engineering
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 2: Slide 9
What is Software Engineering?
• Engineering
– Applied Science
• Electrical engineering
– Applied Physics
• Software Engineering
– Applied Computer Science
• Software Crisis
– Software development projects were
delivered late
– Software was full of errors
– Software did not satisfy requirements
– Software was difficult to maintain
• NOTE:
– All framework activities of a software
process uses the generic activities.
– No single off-the-shelf software exist that
you can apply and use.
– The generic framework is tailored to suit a
specific software project which is the ideal
situation.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 2: Slide 19
Umbrella Activities
• Umbrella activities are performed throughout
the life cycle phases regardless of the
framework activity an organization are using.
– Software project management
– Formal technical reviews
– Software quality assurance
– Software configuration management
– Work product preparation and production
– Reusability management
– Measurement
– Risk management
• Agile
– Implies swift or flexible.
– Approach based on iterative development.
– It break tasks into smaller iterations, or parts
Do not directly involve long term planning.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 2: Slide 27
Prescriptive vs. Agile Process Models
• Prescriptive process models advocate an
orderly approach to software
engineering.
• XP Coding
– Recommends the construction of a unit test for the story
before coding
– Encourage pair programming
• XP Testing
– All unit test are executed daily
– Acceptance test are defined by the customers and
executed to assess the customer visible functionality
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 2: Slide 56
Extreme Programming (XP)
2. Testing:
– it makes software more reliable)
– continually write and execute test cases --test-
driven development
3. Incremental development:
– (eliminates the problems of waterfall model)
– come up with new increments every few days
4. Simplicity:
– Create the simplest design that will support only
the currently required functionality.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 2: Slide 58
Taking Good Practices to XP
5. Design:
– Everybody will design daily(refactoring)
6. Architecture is important
– Everybody will work at defining and refining the
architecture
• Characteristics
– Self-organizing teams
– Product progresses in a series of month-long
sprints (increments)
– Requirements are captured as items in a list of
product backlog (continuously)
– One of the agile process
Sprint
Review
• Roles
– Product Owner (customer), Scrum Master(project
manager), Team (team members)
• Ceremonies:
– Sprint Planning, Sprint Review, Sprint Retrospective,
Daily Scrum Meeting
• Artifacts (Documents):
– Product Backlog (Requirements), Sprint Backlog
(Requirement per one Sprint), Burndown Chart
(captures how far the project has progress)
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 2: Slide 63
Key Roles and Responsibilities in Scrum Process
• Product Owner:
– Acts on behalf of customers to represent their
interests
• Development Team:
– Team of 5- 9 people with cross-functional skill
sets.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 2: Slide 64
Key Roles and Responsibilities in Scrum Process
• Product Owner:
1. Defines the features of the product
2. Decide on release date and content
3. Prioritize features according to market value
4. Adjust features and priority every iteration,
as needed
5. Accept or rejects work results
2. Cross functional
– QA, programmers, UI designers etc.
• Scope
– Software process (life cycle)
– Software development principles
– Software methods and notations
• Goals
– Production of quality software,
– Delivered on time, within budget,
– Satisfying customers’ requirements and users’ needs