Chapter 1-7
Chapter 1-7
Design
OUTLINE
Introduction to Information System development.
System development methodologies, / Software
life cycle and process model and phase
Problem Identification, Selection and Planning
Phase:
Problem identification
problem definition: symptoms vs problems
prioritizing problems
project initiation and planning
planning tools and techniques
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Gantt and PERT
Data
The data simply exists and has no meaning
beyond its existence (in itself).
It can exist in any form, usable or not. The
data exists in different formats, such as
text, image, sound, or even video.
Information
Information is data combined with
meaning. Information embodies the
understanding of a relationship as the
relationship between cause and effect
Ex: The temperature dropped 15 degrees,
then it started to rain. According to Ackoff,
information is useful data; it provides
answers
Compiled by: to the questions:
Tilahun.M
sis and Design
System Analy “who,” “what,”
01/23/2025
Data Vs Information
Data is a collection of facts, while information puts those facts into context.
While data is raw and unorganized, information is organized.
Data, on its own, is meaningless. When it’s analyzed and interpreted, it
data.
Data typically comes in the form of graphs, numbers, figures, or statistics.
ideas.
Data isn’t sufficient for decision-making, but you can make decisions based
on information.
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Knowledge
Knowledge can be seen as information combined
with experience, context, and interpretation.
Knowledge constitutes an additional semantic
level derived from information via a process .
Advantage:
Provides a system for the users to interact with, even if it is
not initially ready for use.
Quick feedback: Prototyping method enables quick feedback
from the client and helps to identify gaps in the initial
requirements or design specifications
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Rapid Application Development (RAD)
cont.…
Reduced risk: By prototyping, many design flaws
and bugs can be identified early in the development
process which can help to reduce the risk of failure.
Disadvantage:
High scope creep: The client may request changes
or additions to the prototype, leading to the scope of
the project continuously expanding, which can
result in the project taking longer to complete than
expected.
Unsuitable for large projects: Prototyping may not
be suitable for larger projects because of the time
required to create and test multiple prototypes. This
can lead to delays, increased costs, and make the
product less attractive
Compiled by: Tilahun.M
to clients. 01/23/2025
System Analy
sis and Design
Agile Development
These programming-centric methodologies have
few rules and practices, all of which are fairly easy to
follow.
Functionality
Where on the other hand, the main concept behind the object
Idea
Development
Application Backlog time
Part-Whole associations:
Input Marks
Grade Administrator
Enroll in
Semester
Distribute
Student Transcripts
Registrar
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Drawing Use Case Diagrams
• Collection of use cases, actors, their associations,
a system boundary box (Optional), and packages
(Optional)
• Horizontal Ellipse – Use Cases
• Stick Figures – Actors – role players
• Line – Association and Relationship
• Arrow – Initial invocation (optional)
• Rectangle around use case – Scope of the system
• File Folders – Packages (organized model
elements into groups)
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Identifying Actors
• Anything or anyone that interfaces with your system
• Including people, external systems, and other organizations
• Never part of the system
• Questions help to find actors
– Customer?
– Who obtains information?
– Who provides information?
– Who installs the system?
– Who operates the system?
– Who shuts down the system?
– What other system interacts with our system?
– Does anything happen automatically at preset time?
– Who will supply, use or remove information?
– Where does the system get information?
Enroll in
Seminar
Drop Seminar
Attend
Seminar
Finish Seminar
Notify students of
Compiled by: Tilahun.M schedule
System Analychanges 01/23/2025
sis and Design
Alternate Course of Action
• Infrequently used path of logic in a use case
• Exception or error condition that must be handled
• Style issues
1. Includes the descriptions of actions that must be met to
invoke the alternate course
2. Identification and numbering scheme is used
3. Each step starts with the letter of the alternate course,
followed by the number of the step in the basic course of
the use case it replaces
4. The last step in each alternate course of should indicate
either that the use case ends or goes to the last step of
the Basic Course of Action
Student
Name
Display Course Details
Requester Course Seminar Seminar
Number Location Availability
Course Enrollment
Course Searcher Name Requester
Course
Number Course
Description
Course
Name
Amount Owed
Use
:Professor Seminar :Seminar
Information Information Information
Requester
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Domain Modeling with
Class Responsibility Collaborator (CRC) Cards
CLASS NAME
Responsibilities Collaborators
Student Number
Name
Address
Phone Number SEMINAR
Enroll in Seminar
Drop a seminar
Request transcripts
Student
Name
Address
Phone number
Email address Enrollment
Student number
Average Mark
Record
Validate Info
Provide list of course
The End
Essential Use
Case Model Use Case
Model
Business
Rules Sequence
Diagram
Activity
CRC Model Diagram
Class Model
User Interface
Flow Diagram
User Interface
Essential User Prototype
Interface
Compiled by: Tilahun.M
Prototype System Analy 01/23/2025
sis and Design
System Use Case Modeling
• Difference from essential use case modeling
– High level implementation decisions
• Composed of use case diagrams and documentation describing the use
cases, actors and associations
• Describes a sequence of actions that provide a measurable value to an
actor and is drawn as a horizontal ellipse
• An actor is a person, organization or external system that plays a role in
one or more interactions with your systems
– Drawn as stick figures
• Associations between actors and classes are indicated in use case
diagrams, a relationship exists whenever an actor is involved with an
interaction described by a use case
– Exist between use cases
– Depicted as a line (arrows are optional)
• System Boundary
Compiled Box – Rectangle
by: Tilahun.M around the use cases
System Analy 01/23/2025
sis and Design
Writing System Use Cases
• Begin with your essential use cases and modify them to reflect the
information captured within your UML sequence diagrams, activity
diagrams and user interface diagrams.
• Rework your use cases to reflect opportunities for reuse applying the UML
stereotypes of <<extend>> and <<include>>
• Two common styles exist for writing use cases
– Narrative style
• Basic and alternate courses of actions are writing one at a time
– Action Response Style
• Advantage: it is easier to see how actors interact with the system and how
the system responds
• Disadvantage: it is harder to understand the flow of logic of the use case
Student
Enroll in <<include>> Enroll in
University Seminar
<<extends>>
International
Student
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Extend Associations between use cases
• The <<extend>> stereotype is used to indicate an extend association
• It is a generalization relationship where an extending use case continues the
behavior of a base use case
• Accomplishes this by conceptually inserting additional action sequences into the
base use case sequence
• When an extending use case activity sequence is completed the base use case
continues
• Alternate course of the base use case
• Introduce an extending use case when
– The logic for the alternate course of action is at a complexity level similar to that of the
basic course of action
– There is a need for an alternative course for an alternative course of action
• Extension points are placed in based use cases to indicate where the logic
of the extending use case replaces that of the base use case
Attributes
EnrollInSeminar
Seminar
<<UI>>
goals
What is the purpose of the design we are intending to
produce?
Who is it for?
constraints
What materials must we use ?
What standards must we adopt?
User Component
Collaboration
Interface Diagram
Diagram
Prototype
Controller/
Process Classes
System
Classes
Business/Domain Classes
Persistence Classes
Persistent
Compiled by: Tilahun.M
Store
System Analy 01/23/2025
sis and Design
Layers
• User Interface classes – implements the major UI element of your system
• Business behaviour classes
– Business/domain classes
• Implements the concepts pertinent to your business domain such as “student” or
“seminar”
– Controller/ process classes
• Implements business logic that involves collaborating with several business domain
classes
• Persistence Classes – encapsulate the capability to store, retrieve and
delete object permanently without revealing details of the underlying
storage technology
• System Classes – provide operating system specific functionality for your
applications, isolating your software from the operating system
Student
name
phoneNumber
emailAddress
studentNumber
averageMark
+isEligible(name:string, studentNumber:StudentNumber):boolean
+Student(studentNumber: StudentNumber ): Student <<constructor>>
+ getCoursesTaken (): Vector
+ purchaseParkingPass()
+getAverageMark(): long
- setAverageMark (newAverageMark:long)
saveTheObject() Save() The name was shortened because the term “the
Compiled by: Tilahun.M System Analy Object” did not add any value
01/23/2025
sis and Design
Method Visibility
• How a method is accessed by objects
• Three levels of visibility
– Public, Protected and Private
• To reduce coupling within your system, the general
rule of thumb is to be as restrictive as possible when
setting the visibility of a method
– A method doesn’t have to be public, then make it
protected, if it doesn’t have to be protected make it
private
)
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Modeling Attributes During Design
• Scope
– Static attribute – applicable to a class
– Instance attribute – applicable to an individual instance
• Primitive types are indicated in lowercase. Types that
are classes are indicated in mixed case
• Dependent classes implement fine grained cohesive
behaviour
5.n: getInfo
5.1; getInfo
enrollmentN:
enrollment1:
Enrollment
Enrollment
Record
Record
5.n.1:getInfo
5.1.1 getInfo
studentN
Student1
: Student
: Student
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Drawing Collaboration Diagram
• With collaboration diagramming the basic idea is that
you identify
– The scope of the diagram
– The objects
– The relationships between the objects
– The messages passed between the objects
• Draw whenever you want to fully understand the
behavior of an OO application and to show the
objects that makeup the application and the message
flow between them
Compiled by: Tilahun.M System Analy 01/23/2025
sis and Design
Component Modeling
• OO is a preferred foundation from which to build components
• UML includes a component diagrams that can be used to
analyze and design your component based software
• Components are modeled as rectangles with two smaller
rectangles jutting out from the left hand side
• Implement one or more interfaces, modeled using the same
“lollipop” notion that UML class diagrams use
• Components have dependencies on the interfaces of other
components, modeled using the standard UML dependency
notation
Security
Seminar <<infrastructure>>
Management
<<application>> Student
Persistence
<<infrastructure>>
Seminar
Student
Administration
<<application>>
University DB
Schedule <<infrastructure>>
(paying
taxi)
Testing must be done systematically and the results documented so that the project team knows
Software testing is a critical element of the ultimate review of specification design and coding.
Testing is the process of executing a program to find errors. To make our software perform well it
should be error-free. If testing is done successfully it will remove all the errors from the software.
requirements.
Testing is checking of the system workability in an attempt to discover errors and avoiding such errors
In object-oriented systems, testing encompasses three levels, namely, unit testing, subsystem testing, and
system testing.
In unit testing, the individual classes are tested. It is seen whether the class attributes are
implemented as per design and whether the methods and the interfaces are error-free.
This software testing basic approach is followed by the programmer to test the unit of the program.
It helps developers to know whether the individual unit of the code is working properly or not.
Unit testing is the responsibility of the application engineer who implements the structure.
Unit testing finds differences between the object design model and its corresponding component.
This involves testing a particular module or a subsystem and is the responsibility of the subsystem
lead.
It involves testing the associations within the subsystem as well as the interaction of the subsystem
or module.
The purpose of this level of testing is to expose faults in the interaction between integrated units.
Subsystem tests can be used as regression tests for each newly released version of the subsystem.
assurance team.
The team often uses system tests as regression tests when assembling new releases.
In this method, your software is compiled as a whole and then tested as a whole. This testing
purpose of this test is to evaluate the system’s compliance with the specified requirements.
The purpose of this test is to evaluate the system’s compliance with the business requirements and
assess whether it is acceptable for delivery.
Software Testing is Important because if there are any bugs or errors in the software, it can be
identified early and can be solved before delivery of the software product.
Properly tested software product ensures reliability, security and high performance which further
helps you to save your money for the long term. In case if the bugs caught in the earlier stage of
software testing, it costs less to fix.
Security: It is the most vulnerable and sensitive benefit of software testing. People are looking for
Manual testing
The process of checking the functionality of an application as per the customer needs without taking
any testing tool, rather than have a proper understanding of the product so we can easily prepare the
test document.
Automation testing
Automation testing is a process of converting any manual test cases into the test scripts with the help
do not require any human efforts. We need to write a test script and execute those scripts.
https://www.geeksforgeeks.org/types-software-testing/
https://www.tutorialspoint.com/object_oriented_analysis_design/ooad_testing_quality_assurance.htm
https://www.geeksforgeeks.org/software-testing-basics/
https://www.javatpoint.com/software-testing-tutorial
phase remains consistent with the documentation of the previous phases and respects pre-established
rules and standards.
A core technique in software quality assurance where a group of reviewers independently and
Complies with relevant standards – this is normally a mark of certification by the installer or manufacturer
Software maintenance is done after the product has launched for several reasons including improving the software
Correct faults.
Implement enhancements.
Accommodate programs so that different hardware, software, system features, and telecommunications facilities
can be used.
Retire software.
running for a long period of time and keeping customers and users happy.
Why is software maintenance important?
To improve the functionality of the software to make your product more compatible with the latest marketing and
business environments.
To remove outdated functions from your software that is inhibiting your product efficiency.
Creating a new piece of software and launching it into the world is an exciting step for any company.
This means monitoring and maintaining properly. As technology is changing at the speed of light, software must keep
Corrective software maintenance is necessary when something goes wrong in a piece of software
including faults and errors. These can have a widespread impact on the functionality of the software in
general and therefore must be addressed as quickly as possible.
Many times, software vendors can address issues that require corrective maintenance due to bug reports that
users send in. If a company can recognize and take care of faults before users discover them, this is an added
advantage that will make your company seem more reputable and reliable.
Preventative software maintenance is looking into the future so that your software can keep working as
This type of maintenance includes necessary modifications and updating to prevent future problems of
the software.
Change you make to prevent the occurrence of errors in the future or introducing changes that would
It goals to attend problems, which are not significant at this moment but may cause serious issues in
future.
to the surface.
Users may see the need for new features or requirements that they would like to see in the software to
make it the best tool available for their needs. This is when perfective software maintenance comes into
play.
Perfective software maintenance aims to adjust software by adding new features as necessary and
removing features that are irrelevant or not effective in the given software.
This process keeps software relevant as the market, and user needs, change.
A software product needs maintenance to support the new features that the users want or to change
performed, your software must adapt in order to properly meet new requirements and continue to run
well.
This includes modifications and pupations when the customers need the product to run on new platforms,
on new operating systems, or when they need the product to interface with new hardware and software.