Itec 4010 1 - Intro
Itec 4010 1 - Intro
and Design II
Week 1: Introduction
What is a System?
• A computer application is a
computer software program that
executes on a computing device
to carry out a specific function or
set of related functions.
• An information system is a set
of interrelated computer
components that collects,
processes, stores (usually in a
database), and provides as
output the information needed
to complete business tasks.
https://aws.amazon.com/blogs/database/manage-databases-through-custom-skills-with-amazon-alexa-and-aws-systems-manager/
Why is System Analysis and Design Important?
Users/Customers Developers
• Systems analysis and design (SA&D) is about providing the tools and
techniques to developers so you can understand
• the business need, capture the vision, define a solution, communicate the
vision and the solution, build the solution and direct others in building the
solution, confirm that the solution meets the need, and launch the solution
application.
System Analysis and Design (SA&D)
• Systems analysis consists of those activities that enable a person to understand
and specify what the new system should accomplish.
• describes in detail the “what” that a system must do to satisfy the need or to solve the
problem.
• Systems design consists of those activities that enable a person to describe in
detail the system that solves the need.
• describes in detail “how” the system will work.
• Skills required
• Soft Skills
• Communication skills
• …
• Hard Skills
• Detail specifications
• Design solutions
• …
Project and SDLC
• Initial development of a new system is usually done as a project.
• the activities required to develop a new system are identified, planned,
organized, and monitored.
• Project: a planned undertaking that has a beginning and an end and produces
some definite result.
• A project management framework to guide and coordinate the work
of the project team.
• Systems Development Life Cycle (SDLC) is the entire process
consisting of all the activities required to build, launch, and maintain
an information system
System Development Life Cycle
• 6 core processes/phases
• Initiation. Identify the problem or need and obtain approval to proceed.
• Planning. Plan and monitor the project—what to do, how to do it, and who
does it.
• Analysis. Discover and understand the details of the problem or the need.
• Design. Design the system components that solve the problem or satisfy the
need.
• Implementation. Build, test, and integrate system components.
• Deployment. Complete system tests and then deploy the solution.
• Intangible cost/benefit
• Cost/benefit that accrues to an organization but that can’t be measured
quantitatively or estimated accurately
• E.g., increased customer satisfaction, reduced employee morale, etc.
Determining Project Risk and Feasibility
• Aspects
• Organizational
• Fear of change of job responsibilities
• Technological
• Complex/new technology with uncertainty
• Resource
• Limited resources
• Schedule
• Tight deadlines
Planning Phase
• Project Planning
• Project Scope Statement
• Work Breakdown Structure (WBS)
• Project schedule (Gantt chart)
• Risk register
• …
Work Breakdown Structure (WBS)
• Work Breakdown Structure (WBS)
• The list or hierarchy of activities and
tasks of a project
• used to estimate the work to be done
and to create a detailed work schedule
• Guidelines for creating WBS
• There should be a way to recognize
when the task is complete.
• The definition of the task should be
clear enough so one can estimate the
amount of effort required.
• As a general rule for software projects,
the effort should take one to five
working days.
Gantt Chart
• Gantt chart
• A bar chart that shows the activities as bars on a horizontal timeline
• Critical path
• Tasks that must stay on schedule.
• If any of the critical path tasks cause a schedule slip, then the entire project is
delayed.
Software System Development
• System development methodology
• a set of comprehensive guidelines for the SDLC that includes specific models,
tools, and techniques
• provides guidelines for every facet of the systems development life cycle.
• Models
• Tools
• Techniques
Models
• In project initiation & planning phases
• NPV analysis
• Gantt chart
• In system development
• A representation of an important aspect of
the real world.
• Abstraction
• Representations of
• inputs, outputs, processes, data, objects, object
interactions, locations, networks, and devices,
among other things.
• Graphical Models
• Diagrams and charts
Tools
• Software application that assists developers in creating models or other
components required for a project
• Integrated development environments (IDEs)
• a set of tools that work together to provide a comprehensive development and
programming environment for software developers
• Visual modeling tools
• tools that help analysts create and verify graphical models and may also generate
program code
• CASE Tools
• Computer-Aided Software Engineering
• Upper-CASE: analysis phase
• Lower-CASE: design phase
Techniques
• Guidelines that helps an analyst complete an activity or task.
• often includes step-by-step instructions for creating a model
• might include more general advice on collecting information from system users
Software Development Approaches
• Different companies could have different methodologies
• Two general approaches
• The Structured Approach (traditional approach)
• Structured analysis
• Structured design
• Structured programming
• The Object-Oriented Approach
• Object-oriented analysis
• Object-oriented design
• Object-oriented programming
The Structured Approach
• Structured
Programming
• Guidelines to improve
the quality of
computer programs.
• Each module has one
start point and one
end point and uses
sequence, decision, and
repetition constructs
only
The Structured Approach
• Top-down programming
• Divides complex programs into a hierarchy of program modules.
• Modules on the top of the hierarchy controls program execution by “calling”
lower-level modules
The Structured Approach
• Structured Design
• The design process of organizing a program
into a set of modules and organizing those
modules into a hierarchical structure
• The modules and the arrangement of
modules are shown graphically by a
structure chart
• Two main principles: program modules
should be
• Loosely couple
• Each module is as independent of the other
modules as possible
• Allows each module to be designed and
modified without interfering with the
performance of others
• Highly cohesive
• Each module accomplishes one clear task
• Easier to understand what each module does
• Changes to the module will not affect others
The Structured Approach
• Structured Analysis defines
• what the system needs to do (the
processing requirements)
• what data the system needs to
store and use (data requirements)
• what inputs and outputs are
needed
• how the functions work together
to accomplish tasks.
• Data Flow Diagram (DFD)
• a structured analysis model
showing inputs, processes,
storage, and outputs of a system
• Process, flow, store, external
entity
The Structured Approach
• Entity-Relationship Diagram (ERD)
• A model of data needed in the system
• Illustrates the relationship between data entities
The Object-Oriented Approach
• System development based on the
view that a system is a set of
interacting objects that work
together
• Object
• a thing in an information system that
responds to messages by executing
functions or methods
• E.g., Customers, employee, button,
menu, request, response, etc.
The Object-Oriented Approach
• Object-oriented analysis (OOA)
• the process of identifying and defining the use cases and the sets of objects
(classes) in the new system
• Object-oriented design (OOD)
• defining all of the types of objects necessary to communicate with people and
devices in the system, showing how objects interact to complete tasks, and
refining the definition of each type of object so it can be implemented with a
specific language or environment
• Object-oriented programming (OOP)
• programming using object-oriented languages that support object classes,
inheritance, reuse, and encapsulation
Unified Modeling Language (UML)
• UML
• Provides a standard notation that can be used by all object-oriented methods
• Use case diagrams
• Class diagrams
• Interaction diagrams
• State machine diagrams
• Activity diagrams
A class diagram
The Object-Oriented Approach
• Benefits
• Naturalness: it is natural/intuitive for people because we tend to think about
the world in terms of tangible objects.
• Reusability: classes can be reused.
• almost all systems with graphic interface use menus, dialog boxes, windows, and buttons
• many systems within the same company also use customer, product, and invoice classes.
Summary
• Software Development Life Cycle
• Information Systems Development Process
• Project Initiation
• Project Planning
• Software Development Approaches