Application System Development Notes
Requirement Engineering (RE)
- Definition: Requirement Engineering is the process of identifying services and constraints of a system to be developed. It includes identifying, analyzing, and modeling software requirements.
Four Main Activities in Requirement Engineering:
- Requirements Elicitation:
- Obtaining system requirements and understanding user needs for the system.
- Requirements Analysis:
- Analyzing gathered requirements and translating them into models based on user needs.
- Requirement Specification:
- Clearly and thoroughly documenting system requirements.
- Requirements Management:
- Ensuring requirement specifications align with actual system needs, meet standards, and serve as a basis for initial design.
Consequences of Incorrect Requirement Engineering:
- Delayed project completion and increased costs.
- Customer and end-user dissatisfaction due to system limitations.
- System unreliability, errors, and disruptions.
- System errors and accidents that disrupt normal company operations.
- High system maintenance and development costs.
- Damage to the IT team's reputation due to perceived failures.
Roles Involved in Requirement Engineering:
- Software Engineer
- System Analyst
- Business Analyst
- Requirements Specifier
- Requirements Reviewer
- Other Stakeholders
Requirement Elicitation:
- Identifying requirements is the initial step in Requirement Engineering.
- It involves gathering requirements from users or deriving them from system needs.
- Requirements are divided into:
- Functional Requirements
- Non-Functional Requirements
Functional Requirements:
- Describe the functions or services the system offers.
- Example for an online learning registration system:
- User interface compatibility (e.g., Windows 10).
- User options (e.g., form fields).
- Data recovery in case of power failure.
Non-Functional Requirements:
- Describe constraints on the system.
- Example for an online learning registration system:
- Data transmission speed (e.g., minimum of 1Mb per second).
- Response time (e.g., registration response within 3 seconds).
- System design based on UML.
Classification of Non-Functional Requirements:
- Product Requirements: Specific system behavior such as execution time and reliability.
- Organizational Requirements: Standards and procedures such as standard processes and implementation needs (e.g., using specific software or security protocols).
- External Requirements: Factors external to the system, such as interoperability and legal requirements (e.g., interaction with external systems, legal compliance).
Software Requirements:
- Analysis of relationships that serve as input for defining requirements.
- Understanding the environment in which the software system will operate.
- Understanding how the system will interact with its environment.
- Software requirements are non-formal and contain detailed information.
- Essential features of the software product, market analysis results, etc.
User Requirements:
- Analysis of environmental needs and information obtained from users, experts, and customers.
- Mechanisms include interviews, questionnaires, and observation of operational environments.
- Builders provide information in an easy to understand format e.g. documents, prototypes or models to confirm the accuracy of the analysis.
Requirements from Other Systems:
- Developers need to interview users of systems that interact with the system being developed.
Interface Requirements:
- Developers need to gather requirements for building the user interface.
- The interaction between humans and the system is crucial.
- Task analysis is carried out to gather detailed data on how users interact with the system.
System Constraints:
- Constraints in the software development process need to be identified like cost, hardware characteristics, existing systems, and portability needs.
Requirement Analysis:
- Requirement Analysis is derived from various sources.
- Analysis is needed to gain precise definitions of needs.
- Analysis must be sufficient regarding technical and cost risks, completeness, accuracy, and clarity.
- Various analysis methods can aid in analyzing requirements.
Main Activities in Requirement Analysis:
a. Assessment of Problems:
* Evaluates for issues like ambiguities, incompleteness, and inconsistencies.
* Addresses software requirements for systems that will interact with it.
b. Classification of Requirements:
* Requirements are classified by priority such as mandatory, not necessary or important.
* Mandatory requirements are essential for system acceptance.
* Requirements are also evaluated for stability and are classified as mutable or stable.
* Mutable requirements are subject to change while stable requirements are fixed.
* Mutable Requirements:
* Changeable Requirements: Subject to change due to changing environments and organizational operations.
* Example: Hospital treatment system adapts to changing treatment methods depending on diseases.
* Emerging Requirements: Emerge from the customer's evolving understanding of the system during development.
* Example: Initially storing patient biodata as text, later adding digital X-ray image storage.
* Important Requirements: Stem from advances in information technology.
* Example: Transition from storing X-ray films physically to digitally, changing the X-ray examination process.
* Compatibility Requirements: Dependent on system or process within the organization.
* Example: Software compatibility with the chosen operating system, requiring updates when the OS changes.
c. Assessment of Possibilities and Risks:
* Assessment covers possibilities like technology, (how requirements are met with technology), operations, (software usability by existing staff), and economics (acceptable implementation costs.)
d. Validation of Requirements:
* All requirements must be reviewed to make sure they are complete, consistent, and in line with user needs.
* Identified requirements must be reported understandably.
* Two ways used to report system requirements:
* Analysis Models
* Models are constructed once needs are analyzed to define specific features of functions of the system for development.
* These include interface between functions and environment.
* Expressed in a more understandable format as compared to text descriptions.
* Features of useful paradigms are:
* Easy to comprehend and not complex.
* Cost effective to make and refactor as compared to building the actual system
* Improved clarification of complex scenarios.
* Different types of assessment models are:
* Data flow model
* Merging model
* Entity model
* Stimulus response model
* Data flow models:
* Data flow models are leveraged to depict how data is processed at all stages.
* Practices utilizing data flow charts are DFD (Data Flow Diagram) or Data Flow Charts (Data Flow Diagram).
* DFD is also known as bubble charts, a graphical technique depicting data flow and also data form changes serving as data movement from input to output.
* Prototypes
* Built for feedback from customers and users.
* Aimed to get a deeper grasp of system specifications.
* Prototypes are built when it is hard for the user to depict how software operates.
* Most reliable tool to communicate how a system will perform.
* The model is handed to the user if software is multi type and user.
* Prototypes minimize risk of software production without specifications.
Requirement Specification:
- Requirement Definition = Customer oriented description of system function and operational constraints etc.
- Specification of needs = Clear and thorough description features and constraints of systems including use cases etc.
- A communication tool along with foundation of agreement between system designers and customers.
- Specifications are represented by system types and models built during requirements assessment phase.
- Written in basic language these specifications can cause problems which includes author and reader comprehension issues, vague words and linguistic composition etc.
- Different specification options that could be used includes formal language or prototype blueprints.
- Specification forms that incorporate a structured normal language have their specification, these requirements includes functionality of the code, entry condition, output conditions along with ancillary stipulations.
- Specification of needs example based on build orders.
Interface Specification:
- Almost all systems perform requiring different sub system interface.
- Three types of interfaces to be defined including operation, data along with presentation etc.
- Operation face require service out from sub systems
- Data interface data migration from data sub systems
- Presentation data presentation is required which each special thing may be needed.
Needs Tracking:
- Tracking specification is feature need specification for demonstrating tracking each mutual interaction.
- Case equipment enable this feature as well as the tracking most often includes assigning codes onto each code
- Needs are indexed to each specification based on code.
- Cross reference matrices are created with documents etc.
Requirement Management:
- Is the mechanism to regulate needs for all stakeholders as well as insure these criteria are met.
- Aimed at gaining access, saving, disseminating and working data with tracking along with version logs and also regulating needs
- Hard to meet goals for project manager as well as project modification
- Crucial feature is communication as well as interaction.
- Must have an update, logging, docs with program for the company etc with an application online as an option for the project etc.
- Five stages
- Identification, Investigation.
- Accessibility.
- Changes to specifications and designs.
- Building and testing.
- Delivery.
Function of Software Requirement Specification (SRS) according to standard
- Software Requirements Specification (SRS) has system software description under development. It provides operational functional and non-functional needs
Advantages of SRS:
- Establishing the foundation for a deal between the customer and contractor or suppliers on software functions and expected performance.
- Enables assessment of requirements before initiating the design phase and reduces subsequent redesign efforts.
- Provides a solid foundation for cost, risk, and schedule estimation for the product.
- Aids in preventing software project failures.
Specific Objectives of SRS:
- Streamlining Reviews
- Framing Work Scope
- Guidance for software engineers(assisting navigation and coding)
- A Framework for Use and Application
- Constant Updating.
Introduction to Project Management
- Project management governs development and operations by planning, co ordinating and administration to achieving goals for the program etc.
Definition of projects
- Occasional activities under certain conditions
- PMI(Project Management Institute) Effort temporary with tasks for product etc.
- Certain goals within constraints as well as timelines
- Control is management that has certain stages with project cycles etc.
Definition of project Management
- Is combination of resource admin, planning and management via the practice of construction 4th edition.
Project Brief Content for timeline
- Following administration, a model is needed for scheduling how long any step takes.
- Project goals are compared and then models are made for timing as well as deliverables for the project.
- Timeline needs to be kept in check adding more personnel.
Importance of Scheduling:
- Determine and associate a task towards other things
- Recognize relation prior from CPM and P1 P2 and P3
- Establish timing for maintenance while reducing loss from time and funds
- Optimal use of resources in an improved manner
Gantt Charts
- Technique which is a chart using bars indicating a moment.
Importance of chart application in projects
- Able to understand which activities are implemented
- Timeline of the project and each step of the processes
Project Brief content
- Modular is like procedure with coding which may be used to reuse with modular code compiler etc. For example using SAP which is integrated with Microsoft word module
Project brief content task application
- Structure divides tasks into an organization etc which facilitates better monitoring and assessment.
Function Jobs
Tasks handed to personnel by skill relating that work. It needs a staff with experience for performing the tasks or functions required.
Too much admin and not enough workers needs to have analysts and engineers which need different training and techniques, so the staff is prepared in this environment etc.
Organization Projects
- Teammates and managers cooperate by pattern, by skill or by product (software).
Check application prototype
- Prototype is making design sketches as case system is where teachers recommend subjects, so two modules is built being a teacher or student, and these models are built as the design
Unit test and utility
Testing software via utility improves interface of user expression while design needs to function well as the features work e.g. buttons
Unit testing functions via variables each unit through controller interface logic values on the data etc
Use assessment assessment will ensure user expression via prototype as there won't need help on an application.