Professional Documents
Culture Documents
Unit Outline
• Introduction
• The Software Process
• Software Process models
• Agile software development process
Introduction
• Software Engineering is the process, collection
of methods (practice) and tools that are used
to build high-quality computer software in a
timely manner.
• Software is now involved in almost every
aspect of modern life.
• Software comprises of instructions that are
executed, data structures and descriptive
information (in soft and hard form)
HCT210: Software Engineering Gibson Mukarakate 3
Unit 1: The Software Process
Software domains
1. System software
Services other programs, e.g. operating systems,
compilers
2. Application software
Stand-alone software to solve specific business
problems
3. Engineering/ Scientific software
Usually numerical (“number crunching”)
4. Embedded software
Resides within a product/system/device for
specific control features
HCT210: Software Engineering Gibson Mukarakate 4
Unit 1: The Software Process
Software domains
5. Product-line software
Provides specific capability of line of
customers/businesses, e.g. accounting
6. Web applications (“Web Apps”)
Use the browser as client, and are “client-server”
in nature
7. Artificial Intelligence (AI) software
Mainly uses non-numerical algorithms to solve
complex problems not easily solved by
computation or straight-forward analysis
HCT210: Software Engineering Gibson Mukarakate 5
Unit 1: The Software Process
Software Process:
Generic Framework Summary
Framework Activities
Communication
Activities
Umbrella
Planning
Modeling
Construction
Deployment
Increment Deployment
released
Modeling
Construction Deployment
Agile Development
• Established around 2001, when Kent Beck and
others came up with the “Manifesto for Agile
Software Development”
• It seeks to value:
Individuals and interactions over processes and
tools
Working software over comprehensive
documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
• While it values items on the right, it values those
items on the left more
Agile Development
• Definitions of agile development focus highlight
the following:
i. Agile is flexible to respond to change and
incorporates support for change in all aspects of
software
ii. Software teams are made up of people with human
frailties (they are not robots); thus they are different
in skills, orderliness, creativity, etc
iii. Emphasizes communication within project teams
and with the customer (in fact, customer is
embraced as part of the development team)
iv. Emphasis of delivery of working increments of the
system
HCT210: Software Engineering Gibson Mukarakate 33
Unit 1: The Software Process