Podcast
Questions and Answers
What is the primary goal of the SDLC Deployment Phase?
What is the primary goal of the SDLC Deployment Phase?
Which of the following activities is NOT part of the SDLC Deployment Phase?
Which of the following activities is NOT part of the SDLC Deployment Phase?
What type of activity is software testing classified as?
What type of activity is software testing classified as?
Which stakeholder is primarily responsible for communicating the new deployment to users?
Which stakeholder is primarily responsible for communicating the new deployment to users?
Signup and view all the answers
What is one of the outputs of the SDLC Deployment Phase?
What is one of the outputs of the SDLC Deployment Phase?
Signup and view all the answers
What is the role of a Scrum Master in a Scrum team?
What is the role of a Scrum Master in a Scrum team?
Signup and view all the answers
Which statement best defines the concept of 'Testing' in the software development process?
Which statement best defines the concept of 'Testing' in the software development process?
Signup and view all the answers
How often should acceptance tests be run according to the best practices?
How often should acceptance tests be run according to the best practices?
Signup and view all the answers
What is a characteristic of the backlog in Scrum methodology?
What is a characteristic of the backlog in Scrum methodology?
Signup and view all the answers
What is a key principle of ensuring quality in production code?
What is a key principle of ensuring quality in production code?
Signup and view all the answers
What is an external input (EI) in the context of project size measurement?
What is an external input (EI) in the context of project size measurement?
Signup and view all the answers
Which of the following examples best describes an external output (EO)?
Which of the following examples best describes an external output (EO)?
Signup and view all the answers
What characterizes an internal logical file (ILF)?
What characterizes an internal logical file (ILF)?
Signup and view all the answers
What is the purpose of specifying functional complexity for various elements in a project?
What is the purpose of specifying functional complexity for various elements in a project?
Signup and view all the answers
Which of the following best describes an external interface file (EIF)?
Which of the following best describes an external interface file (EIF)?
Signup and view all the answers
Study Notes
Engineering and Software Development
- Engineering is the application of science and mathematics to solve real-world problems
- It involves using scientific principles to analyze, design, and build machines, structures, and other items (bridges, tunnels, roads, vehicles, and buildings).
- An engineer is a professional who invents, analyzes, designs, builds, and tests machines, complex systems, structures, and materials to meet functional objectives, considering practicality, regulation, safety, and cost.
- Software Engineering (SE) is the systematic application of engineering approaches to the development of software.
- It involves the systematic application of scientific and technological knowledge, methods, and experience to the analysis, design, implementation, testing, deployment, and documentation of software.
- A software engineer applies the principles of software engineering to analyze, design, develop, test, deploy, maintain, and evaluate computer software.
Main Components of SE
- People: Project stakeholders
- Product: Software product with associated documents
- Project: Activities necessary to produce the product
What is a System?
- A system is a collection of elements organized for a common purpose.
- A system is a group of interacting or interrelated entities that form a unified whole.
What is an Information System?
- An information system (IS) is a formal, organizational system designed to collect, process, store, and distribute information.
- A computer information system is a system composed of people and computers that process or interpret information.
Information System Components
- Hardware: The physical layer of the information system
- Software: Set of instructions that control hardware
- Data: Raw material that an information system transforms into useful information
- Process: Business function that users perform to achieve specific results
- People: Inside/outside users who interact with an IS
Four Ps of Systems Analysis and Design
- People: Project stakeholders
- Product: Software product with associated documents
- Process: Framework within which the team carries out activities
- Project: Sequence of activities having one goal that must be completed on time and within budget.
Measures of Project Success
- The resulting information system must meet user needs
- The resulting information system must be delivered on time
- The resulting information system must be delivered within budget
Stakeholders
- System Owner: Responsible for funding, developing, operating, and maintaining the system.
- Project Manager: Experienced professional responsible for planning, monitoring, and controlling projects.
- Systems Analyst: Specialist who studies problems, opportunities, directives, and needs of an organization to determine how people, data, processes, and information technology can best accomplish improvements for the business.
- System Designer: Technical specialist who translates business requirements into technical solutions.
- System Builder: Technical specialist who constructs information systems.
- Software Tester: Individual who tests software for bugs, errors, or problems.
- System User: Customer who will use or is affected by an information system.
Software Development Life Cycle (SDLC)
- A process of creating or altering information systems, and the models and methodologies people use to develop them.
SDLC Planning Phase
- The goal is to formulate a plan to produce the target software application.
- The important output is the Software Project Management Plan (SPMP).
- Stakeholders involved are owners, managers, analysts, and users.
- Activities include developing problem statements, formulating initial product ideas, and defining a vision for the organization's goals.
- Important activities include identifying target customers and market segments, defining project scope.
SDLC Requirements Analysis Phase
- Goal: Identify user and business requirements for the target application.
- Output: Software Requirements Specification (SRS) document
- Stakeholders are owners, managers, analysts, and users.
- Activities include identifying problems, specifying actors to understand needs, generating business requirements, preparing use cases, and creating use case diagrams.
SDLC Software Design Phase
- Goal: Define how the software will be constructed to satisfy requirements.
- Output: Software Design Document (SDD).
- Activities include creating UML diagrams(Class, Component, Deployment, Object, Package, Profile, Composite Structure, Use Case, Activity, Sequence, State Machine, Communication, Interaction Overview, Timing), E-R diagrams, and data flow diagrams.
SDLC Development Phase
- Goal: Build a system that fulfills requirements and implements necessary interfaces.
- Output: Program code ready for testing.
- Stakeholders are managers, analysts, designers, builders, and users.
- Activities include implementing code, modules and interfaces, integrating components.
SDLC Testing Phase
- Goal: Test the system to meet requirements.
- Output: Tested system ready for installation
- Stakeholders include managers, analysts, designers, builders, testers, and users.
- Activities include unit, integration, regression, system, and user testing (beta and acceptance).
Software Quality
- Definition: The degree to which software satisfies its requirements
- Metrics: Defect density, Mean Time to Failure
Veri cation and Validation
- Veri cation: Checking if a product was built according to requirements and specifications.
- Validation: Checking if each complete product artifact meets specifications.
Software Quality Assurance (SQA)
- Supported by veri cation and validation.
- Activities: Inspections and reviews, software testing.
SDLC Deployment Phase
- Final phase of SDLC.
- Involves putting the product in production and making it available to end-users.
- The goal is to make the system operational in a production environment.
- Outputs: Delivered system, release/version, trained users
- Stakeholders: Managers, analysts, builders, users
- Activities: Deployment communication, training, data entry/conversion, system installation, and post-deployment review.
SDLC Maintenance Phase
- Modifying software after release to address defects, enhancements, and performance improvements.
- Goal: Support released software, fix defects, and make improvements.
Software Process Models
- Set of activities, methods, practices, deliverables, and tools stakeholders use to develop and improve information systems.
- Examples include Waterfall, Iterative, Agile, Prototyping, and Spiral.
Waterfall Process Model
- Sequential execution through each phase.
- Advantages: Simple, easy to use, phases are executed sequentially.
- Disadvantages: Requirements must be known upfront, problems are discovered late in the process, lack of parallelism, inefficient use of resources
Iterative Development Model
- Completes the system in successive iterations.
- Each iteration has analysis, design, development, and testing.
Agile Development Model
- Highly iterative process that speeds up development and efficiently responds to change.
Extreme Programming (XP)
- Agile methodology aiming for iterative and frequent small releases.
- Values: Communication, simplicity, feedback, and respect.
- Practices: Planning game, small releases, system metaphor, simple design, test-driven development, pair programming, continuous integration, and whole team.
Scrum Methodology
- Team of 3-9 people, including a Scrum Master, who work together to deliver a product increment.
- Daily Scrum Meetings: 15-minute meetings where team members share progress, plans, and obstacles.
- Sprint: 30-day cycle where teams focus on specific features (stories) from the backlog.
- Backlog: List of customer wants and needs broken down into user stories.
Software Project Management
- Process of planning, organizing, and monitoring the development of a software project.
Organization Structure
- Project-Oriented: Personnel organized around projects.
- Function-Oriented: Groups organized by function.
- Matrix-Oriented: A cross between project and function-oriented
Team Size
- Optimal team size is 3-7 people.
- N people have N(N-1) / 2 communication channels.
Project Cost Types
- Development Costs: One-time costs
- Operating Costs: Recurring costs throughout the system's lifetime
Size Estimation Techniques
- Lines of Code (LOC): Measures the physical length of the software.
- Function Point Analysis (FPA): Measures the amount of functionality based on system specifications.
Complexity Estimation
- Based on the type and size of the application.
Effort and Duration Estimation
- Task duration: Difference between planned start and completion date.
- Effort: People needed to complete a task in a certain time period.
COCOMO Type I
- The effort required to develop applications tends to increase faster than the size of the application.
Scheduling Tools
- Work Breakdown Structure (WBS)
- PERT Chart
- Gantt Chart
- Critical Path Analysis
Requirements Analysis
- Process of understanding what is wanted and needed in an application.
Classi cation of Requirements
- Business Requirements: High-level statements of goals, objectives, and needs for the project.
- Stakeholder Requirements: What end users expect from a specific solution.
- Solution Requirements: Describe the characteristics that meet user and business needs.
- Functional Requirements: Specify the functionalities and services.
- Nonfunctional Requirements: Describe the general characteristics of a satisfactory system (maintainability, performance, security, portability, compatibility, usability).
Fact-Finding Techniques
- Research
- Observation
- Prototyping
- Sampling
- Applying Questionnaires
- Conducting Interviews
- Organizing Brainstorming Meetings
- Joint Requirements Planning (JRP) Sessions
Sampling Techniques
- Random Sampling
- Systematic Sampling
- Stratified Sampling
Questionnaire Formats
- Open-Ended Format
- Closed-Ended Format
Conducting Interviews
- To collect information through face-to-face interaction.
- Types: Unstructured, Structured.
Brainstorming Meetings
- Generating ideas during group meetings.
- Joint Requirements Planning (JRP) Sessions: A technique for drawing out user requirements through joint planning sessions.
Use Case Modeling
- Modeling a system’s functions in terms of business events.
- Elements: Actors, Use Cases, Use Case Scenarios.
- Types of Actors: Primary, Supporting.
Fully Dressed Use Case
- Detailed description of a use case.
- Includes elements like: Actors, Triggers, Preconditions, Postconditions, Normal Flow, Alternate Flows.
- Example for the online shopping system.
Use Case Diagrams
- Graphical representation of interactions between a system and external systems and users.
- Components: System, boundary, use case, actor, use case relationships (Association, Include, Generalization, Extend).
Data Flow Diagram (DFD)
- Diagram (method for representing the flow of data in a process or system)
External Agent
- An outside person, entity, system, or organization interacting with the system.
Process
- Work performed by a system in response to data flows or conditions.
Data Store
- Stored data intended for later use (often a file or database).
Levels of DFD
- Context Level DFD: shows system boundaries, external entities, and major information flows.
- Level 0 DFD: represents primary individual processes.
- Level 1 DFD: represents first-level split processes and data flow.
Decision Table
- Matrix representation of logic, specifying possible conditions and resulting actions.
Example: Check Cashing Policy Statement, Inventory Reordering System
UML Diagrams
- UML Diagrams (e.g., Class, Component, Deployment, Sequence, Activity diagrams). Including Basic Symbols and notations. UML State Machine Diagram Example Including basic symbols and notations
References
- UML Diagrams
- Software Development Life Cycle
- Software Design Phases
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Explore the essentials of engineering and software development in this comprehensive quiz. Understand the role of engineers and the systematic approaches used in software engineering to solve real-world problems. Test your knowledge on designing, building, and maintaining both physical and software systems.