Engineering and Software Development Overview
15 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is the primary goal of the SDLC Deployment Phase?

  • To conduct verification activities on the software code
  • To make the system operational in the production environment (correct)
  • To ensure quality assurance throughout the development process
  • To perform inspections and reviews of the software
  • Which of the following activities is NOT part of the SDLC Deployment Phase?

  • System Installation
  • Training Plan Execution
  • User Acceptance Testing (correct)
  • Post-Deployment Review
  • What type of activity is software testing classified as?

  • Validation activity (correct)
  • Verification activity
  • Documentation activity
  • Project management activity
  • Which stakeholder is primarily responsible for communicating the new deployment to users?

    <p>Managers</p> Signup and view all the answers

    What is one of the outputs of the SDLC Deployment Phase?

    <p>Trained users</p> Signup and view all the answers

    What is the role of a Scrum Master in a Scrum team?

    <p>To conduct daily scrum meetings and measure progress</p> Signup and view all the answers

    Which statement best defines the concept of 'Testing' in the software development process?

    <p>Testing is seen as a mindset rather than a phase</p> Signup and view all the answers

    How often should acceptance tests be run according to the best practices?

    <p>Often, with results published regularly</p> Signup and view all the answers

    What is a characteristic of the backlog in Scrum methodology?

    <p>It includes customer wants and needs broken down into user stories</p> Signup and view all the answers

    What is a key principle of ensuring quality in production code?

    <p>All production code should be pair programmed</p> Signup and view all the answers

    What is an external input (EI) in the context of project size measurement?

    <p>An elementary process where data crosses the boundary from outside to inside</p> Signup and view all the answers

    Which of the following examples best describes an external output (EO)?

    <p>Reports that display processed information</p> Signup and view all the answers

    What characterizes an internal logical file (ILF)?

    <p>User identifiable data residing fully within the application boundary</p> Signup and view all the answers

    What is the purpose of specifying functional complexity for various elements in a project?

    <p>To classify the difficulty of functions for resource allocation</p> Signup and view all the answers

    Which of the following best describes an external interface file (EIF)?

    <p>A group of logically related data for reference with other applications</p> 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.

    Quiz Team

    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.

    More Like This

    Use Quizgecko on...
    Browser
    Browser