Systems Analysis and Design: an Agile Iterative Approach
Second SDLC process activities:
- Determine the major components [functional areas] that's are needed {Core Process 2}. - Define the iterations and assigning each functional area to an iteration {Core Process 2}. - Determine team members and responsibilities {Core Process 2}
System Vision Document:
- Developed to identify the benefits to the company and the functional capabilities that will be included in the system. - Done in 2 steps: ⚫Developing a preliminary statement of benefits. ⚫Then adding estimates of specific dollar costs and dollar benefits.
Specifying the functions in detail:
- Do preliminary fact-finding tasks to understand the requirements [Core Process 3]. - Develop a preliminary list 📃 of use cases and use a use case diagram [Core Process 3]. - Develop a preliminary list of of classes and a class diagram [Core Process 3]
Use case:
- Documents à single user-triggered business event and the system's response to it. - A case or situation where the system is used
Within each subsystem:
- Décisions are made about individual programs such as: ⚫UI programs ⚫Business logic programs ⚫and Database access programs
Planning process of an iteration:
- Identify tasks required for iteration. - Organise and sequence these tasks into a schedule. - Identify required resources [especially people] and assign people to tasks
Object classes:
- Identify the things in the real world that the system needs to know about and keep track of. - Comes in all types of variations, from tangible items to intangible items
Design classes:
- Include class level variables that are needed for class - These classes show method names of important methods within each class - These methods are identified and specified during high level design and detailed design
A Subsystem:
- Is simply a portion of the overall system
Browser-based systems:
- Is structured and constructed differently than an app system that runs on a Smartphone 📱 or a Tablet PC -Sometimes do not provide the same connectivity speed and control as Smartphones or Tablet apps - They are however, more versatile ➡ can be deployed on different equipment, i.e, laptops, without modification
Basic philosophy of Agile Development:
- Neither team members nor the user completely understands the problems and complexities of a new system - Project plans and execution of the project must be responsive to unanticipated issues - It must be agile and flexible -
Second SDLC core process:
- Planning the project 📅 - Includes business analysis and project management activities
Benefits to Iterative Development:
- Portions of the system can sometimes be deployed sooner. - By taking small portions and developing it first, many tough problems can be addressed early in the project. - Developing a system in iterations makes the entire development process much more flexible and ablest address new requirements throughout the project. A key element of iterative development is choosing a part of the solution system that can be done in 2-4 weeks
Day 3 activities:
- To analyze in detail those use cases and classes that were selected to be implemented in the first iteration. - Requirements at a detailed level for the system: ⚫Perform in depth fact finding to understand details [Core Process 3 ]. ⚫Understand and document the detailed workflow of each use case [Core Process 3]. ⚫Define the user experience with screens and reports [Core Process 3 and 4]
Day 4 activities:
- To design the various components of the solution system. - Carry out activities that direct programming efforts. - During analysis activities, project team's objective is: to understand user needs. - During programming, the objective is to produce the solution. Design is therefore a bridge between Understanding and Construction
User interface design:
- UI ➡ The window that the users work with to utilise the functionality of the system. - Includes all the tasks that describe the look and feel of the system to the user 👤
Methods for documenting details of a use case:
- Use case description - Workflow diagram: shows all the steps within the use case. Purpose of both methods: to document the interactions between the user and the system (How the user interacts and uses system to carry out specific work tasks for a single user)
Designing the database:
- Uses information provided by the class diagram to determine: ⚫the tables ⚫the column in tables ⚫and other components
Database design:
- Uses the class diagram as input - Develops the detailed database schema that can be directly implemented by a database management system. - Such elements as: ⚫table design ⚫key and index identification ⚫attribute types ⚫and other efficiency decisions are made during this activity
Class diagram:
- Visual diagram of the classes and their attributes and their relationship to other classes. - Systems analysts often use this. - Powerful and a frequently used way to understand and document the information requirements of a system
A project:
-A planned undertaking that has a beginning and an end -Produces some definite result
An Application usually refers to:
-Only the computer software
SDLC:
-Systems Development Life Cycle -Identifies all activities required to build, launch, and maintain an information system -Includes all activities part of systems analysis: ⚫systems design ⚫programming ⚫testing ⚫and maintaining the system ⚫as well as other project management processes that are required to successfully launch and deploy the new information system
Information System
A set of interrelated computer components that collects, processes, stores and provides as output the information needed to complete business tasks
Object oriented programming:
Are structured as a set of interacting classes
Model layer classes:
Classes that perform the business logic as well as access the database
Systems Design:
Consists of the activities that enable a person to describe in detail the system that solves the need
Systems Analysis:
Consists of the activities that enable a person to understand and specify what the new system should accomplish
Attributes:
Descriptors that help define and describe a class
In Web dynamic systems:
GUI are the classes that receive the input from browser and format the output HTML files to be displayed by the browser
Software Architect:
Has to be able to understand and capture the vision of the persons funding the project
Systems Analysis and Design
Is about providing the -Tools and techniques to you, the developer 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
Important component of the design:
Is developing the set of object classes and functions needed for the system
An iteration:
Is like a mini-project in that it has a completed result and a constrained time frame
Work Breakdown Structure:
Organised list of tasks 📃
"hard" skills refers to:
Skills as detailing specifications and designing solutions
"soft" skills refers to:
Skills as interviewing and talking to users
Advantage of partitioning system into layers:
System is my child easier to build and maintain with this kind of structure
Work Sequence Draft:
Tasks from a Work Breakdown Structure and placed on a day-by-day sequence
Information System Development Process:
The actual approach used to develop a particular information system
Detailed design:
The thought process of how to program each use case
Final objective of systems design:
To define: - The classes - The methods within those classes - And the interactions between classes We perform this design by starting at the very highest level and then drilling down to the lowest level until we have defined all the functions within each class
Problem domain classes:
Usually derived from those classes that were identified during analysis activities
2 goals for organisation to decide to get project off the ground:
⚫Identify the problem and document the objective of the solution system [Core Process 1]. ⚫Obtain approval to commence the project [Core Process 1]
Various techniques of fact-finding:
⚫Interviewing key users 👥 ⚫Observing 🔭 existing work processes ⚫Reviewing existing documentation and existing systems ⚫and even researching other companies and other systems
An Information System usually refers to:
- Computer software - The databases - Related manual processes
DCD:
- Design Class Diagram - Identifies the object oriented programming classes that's needed for system - Set of design classes include: ⚫problem domain classes ⚫view layer classes ⚫sometimes separate data access classes ⚫and utility classes
Day 4 activities include:
- Design the database structure [schema]. (Core Process 4). - Design the system's high level structure (Core Process 4)
Preliminary Class Diagram structure:
- A box: represents a class of a particular set of objects that are important to system. - Attributes of each class are included Inside the box. Represents detailed information about each object that will be maintained by system. - Lines between each box: represents relationship between the classes that need to be captured in system. Documents the requirements.
Workflow diagram:
- Activity diagram, a dimple diagram, is used to develop a workflow - Ovals: represents tasks - Diamonds: represents decision points - Arrows: represents the sequence of the flow - Columns: represents who performs which tasks - Arrows that cross center line: ⚫Represents the interactions between the system and the user 👤 ⚫Identify the data elements that become part of the user interface
Iterative Development:
- An approach to systems development in which the system is "grown" piece by piece through multiple iterations - Core components developed first, then additional components added - Called "iterative" ➡ 6 core development processes are repeated over and over again to add additional functionality to overall system
Agile Development
- An information systems development process - One of the newer and more effect process
6 core processes required in development of any new application:
1. Identify the problem or need and obtain approval to proceed. 2. Plan and monitor the project (What time do, How to do, and Who does it). 3. Discover and understand the details of the problem or need. 4. Design the system components that solve the problem or satisfy the needs. 5. Build, test, and integrate system components. 6. Complete system tests and then deploy the solution.
3 Benefits of a Work Sequence Draft:
1. It helps the team organise its work so there is enough time set aside to think through the critical design issues before programming begins. 2. It provides a measuring rod to see if the iteration is on schedule. 3. The project leader can see that programming may require more resources if the project is going to stay on this schedule
3 major objectives in the first iteration are:
1. To get project approval. 2. To get a clear picture of the system's overall vision ➡ all major functions and data requirements. 3. To determine the detail specifications and develop a solution for one portion of the system ➡ actually analyze, design, build and test one part of the system
Computer Application
A computer software program that executes on a computing device to carry out a specific function or set of related functions