WEEK 1
READINGS
Read Sommerville, Chapter 1: Introduction, Chapter 2: Software Processes, and Chapter
8: Software Testing
Read Bennett Chapter 22: Managing Object-Oriented Projects [DOC, on Vula][Additional
Resources (online)]
Sommerville, Software Engineering, Pearson (10e) (SUGGESTED - Not required)
Sommerville Chapter 22: Project management: Risk management, Managing people,
Teamwork (Additional to ASD 3 and 4)
Sommerville Chapter 23: Project planning, Software pricing, Plan-driven development,
Project scheduling, Agile planning, Estimation techniques (Additional to ASD 3 and 4)
ASD001:
Advanced Software Development
💡 DEF: The establishment and use of effective engineering principles in order to
obtain software that is reliable and works efficiently on real machines.
The application of a systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software.
Definition → Development → Support
ASD001D: UML Tutorial with Case Study
PART 1:
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1714eb91-3341-4435-b
d57-d0614a4be849/tutASD_Part_1-Peer_Mark.pdf
WEEK 1 1
, Create Message Use Case:
1. The user wants to send a message to the hospital/ clinic
2. The user opens the software and requests to send a message
3. The system responds with the options to compose a new message in drafts. The user can
select for the message to be in the form of:
a. text
b. still images
c. speech
d. attaching patient record
4. If the user selects text, open the keyboard and allow typing
5. If they select images, open the camera for an image to be captured and attached
6. If they choose to add a record, open the file explorer database and search for the patient
record using their patient ID
7. If they select speech, open the voice memos dialogue and capture audio
8. Save their message and send.
9. Done
Alternative scenario:
Patient record does not exist
PART 2:
WEEK 1 2
, ASD002:
Why does software fail?
1. Increasing demands
a. Changing demands (people need bigger software applications quickly)
b. Systems have to be built and delivered faster (so maybe not built properly/ doesnt
consider all issues that might arise)
c. Existing software engineering methods cannot cope and new software engineering
techniques have to be developed to meet new these new demands.
2. Low expectations
a. If you DON’T use software engineering techniques + design patterns, software will be
more expensive and less reliable than expected
i. Therefore, we need better software engineering education and training to address
this problem.
💭 SOFTWARE DEF: Computer programs, configuration data and associated
documentation. Software products may be developed for a particular customer or
may be developed for a general market.
Good SW: Delivers all the required functionality and must be maintainable,
dependable and usable.
Software Engineer vs programmer
💭 SW Engineering: an engineering discipline that is concerned with all aspects of
SW production from the early stages of system specification all the way to
maintenance.
Computer Scientist:
Computer science is concerned with the theories and methods that underlie computers
and software systems.
Systems Engineer:
concerned with all aspects of the development and evolution of complex systems where
software plays a major role. Analysing the current systems and processes in place and
WEEK 1 3
, finding ways to improve it.
System engineers are involved in specifying the system, defining Its overall architecture,
and then Integrating the different parts to create the finished system.
Concerned with development, policy, process design and system deployment, as well as
software engineering .
Software Developer (Programmer):
They build software (using languages and syntax) which runs across various types of
computers
Software Engineer:
They apply the PRINCIPLES of software engineer for designing, developing, maintaining,
testing and evaluation of computer software.
Architecting, designing, planning how the software will be built and how the team will work
together → Concerned with the practical problems of producing software.
It also includes activities such as software project management , the development of
tools, methods, and theories to support software production.
Software should be written in such a way so that it can evolve to meet the
changing needs of customers.
This is a critical attribute because software change is an inevitable requirement of a
changing business environment.
Always expect people’s requirements to change!
WEEK 1 4