Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Midterm review document, Lecture notes of Computer Science

it contains all topics covered for the midterm

Typology: Lecture notes

2020/2021

Uploaded on 02/02/2023

JashanKaur
JashanKaur 🇨🇦

3 documents

1 / 8

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Chapter 1.1
Engineering
Definition 1: Engineering is the study using scientific principles to design and build machines, structures,
etc.
Definition 2: Engineering is the branch of science and technology concerned with the design, building,
and use of engines, machines, and structures
- Deals with designing, developing, and operating computer systems
Software Engineering
Definition 1: Software engineering is the study using scientific principles to design and build software
products for computer systems
Definition 2: Software engineering is an engineering branch associated with designing and building
software products using scientific principles, methods, and procedures
- Emphasizes solving problems in digital hardware and at the hardware-software interface
Software Products
Definition 1: A software product is merchandise consisting of a computer program that is offered for sale
Definition 2: A software product is a software system delivered to the customer with the documentation
that describes how to install and use that system
Types of Software Products
Application Software web application, user interface software
Middle Ware database, relational database management system
Embedded Software software that works routers, smartphones
Real Time Embedded Software software in infrastructure, airplanes, railway
Process of Software Engineering
1) Requirement Analysis – singular documented physical or functional need that a particular design
aims to satisfy
2) System Design – specification
3) Implementation – coding, bug fixing
4) Testing – specification
5) Deployment – the action of brining resources to action
6) Maintenance – modification of software products after delivery
pf3
pf4
pf5
pf8

Partial preview of the text

Download Midterm review document and more Lecture notes Computer Science in PDF only on Docsity!

Engineering Definition 1: Engineering is the study using scientific principles to design and build machines, structures, etc. Definition 2: Engineering is the branch of science and technology concerned with the design, building, and use of engines, machines, and structures

  • Deals with designing, developing, and operating computer systems Software Engineering Definition 1: Software engineering is the study using scientific principles to design and build software products for computer systems Definition 2: Software engineering is an engineering branch associated with designing and building software products using scientific principles, methods, and procedures
  • Emphasizes solving problems in digital hardware and at the hardware-software interface Software Products Definition 1: A software product is merchandise consisting of a computer program that is offered for sale Definition 2: A software product is a software system delivered to the customer with the documentation that describes how to install and use that system Types of Software Products Application Software  web application, user interface software Middle Ware  database, relational database management system Embedded Software  software that works routers, smartphones Real Time Embedded Software  software in infrastructure, airplanes, railway Process of Software Engineering
  1. Requirement Analysis – singular documented physical or functional need that a particular design aims to satisfy
  2. System Design – specification
  3. Implementation – coding, bug fixing
  4. Testing – specification
  5. Deployment – the action of brining resources to action
  6. Maintenance – modification of software products after delivery

Documentation Types

  1. Requirements Document
  2. System Design Document (SDD) – high level design doc
  3. Software Specification Document (SSD) – low level design doc
  4. Software Coding Standard – set of guidelines for programming
  5. Software Testing Procedures
  6. Meeting Notes
  7. Release Notes Software Project Management People, Product, Process, Project
  • PERT Chart – Program Evaluation and Review Technique Uses nodes and links to show the precedence relationships among the tasks in a project
  • Critical Path Methods Technique for planning the timing of a project The longest duration path through the project activities
  • Gantt Chart Bar chart to show a project schedule with respect to time periods Predicting Time COCOMO – empirical cost estimate model
  • Organic <= 50 KLOC, small innovation
  • Semidetached 50 – 300, medium
  • Embedded 300+, large and complex Risk Management A process that allows risks to be understood and managed proactively Success by minimizing threats and maximizing opportunities

The most common failure cause in IT projects is Requirements Definitions. Requirements Elicitation Process

  1. Discovery o The process of working with customers to understand their needs, blueprint the solution, gather detailed requirements, design technical aspects
  2. Classification and Organization o FURPS/FURPS+
  3. Prioritization and Negotiation o MOSCOW
  4. Specification o A document that clearly and precisely describes each of the essential requirements Requirements Elicitation Techniques
  5. Communication o E.g., interviews, surveys, questionnaires
  6. Task Analysis o Definition: The process of learning how a task is accomplished o E.g., PERT chart
  7. Domain Analysis o Definition: The process by which a software engineer learns background information o Purpose: Gain sufficient information o Benefits: Shorten the duration of project, increase quality
  8. Brainstorming o A group creativity technique which efforts are made to find a conclusion for a specific problem o 4 Rules of Osborn’s Method i. Focus on quantity – keep idea flowing ii. Withhold criticism – it can make people stop contributing iii. Encourage unusual ideas – think outside box iv. Combine and improve ideas – form new ideas, work together
  9. Prototyping o Building the product without detail
  10. Observation o Observe actual working of the system Requirement Specification Software Requirement Decomposition – to break down a software system context level to system functions and data entities Recording Requirements – Unified Modeling Language (UML)

Design is a problem solving process to describe a system’s functional requirements. High Level Design (HLD) provides a view of the system at an abstract level. High Level Design Considerations Software Security – implemented idea that protects a software system against malicious attack User Interface – a visual part of a computer application that a user can interact with Architecture Design Architecture Definition: A high level model of a thing Architectural Design Definition: the process of defining a collection of hardware and software components and their interfaces to establish a framework Types of Models

  1. Monolithic Architecture – to put all functions in a single program
  2. Client/server Architecture – a computing model where the server hosts and manages most of the services consumed by client, has multiple tiers
  3. Component Based Architecture – a software object that focuses on the decomposition of the design into individual functional or logical components
  4. Service Oriented Architecture – a software design where services are provided to other components
  5. Data Centric Architecture – a software design model where data is the primary and permanent asset
  6. Event Driven Architecture – a software design that the behavior of the software system is based on two types of events: hardware and software
  7. Distributed Architecture – components are presented on different platforms and several components can cooperate with one another (FROM CHAPTER 3.2 BUT ADDED HERE – correlates to Types of Models) Race Condition – more than one process attempts to modify the same object at the same time o Event driven and distributed architecture can cause race conditions

Low Level Design Definition: the process of refining and expanding the software architecture system Fundamentals

  1. Understanding architecture and requirements o Consider cohesion and coupling
  2. Creating detailed design o Interface design (internal)  Defined by software  Concurrency – executions of several instructions that occur at the same time o Interface design (external)  Requires Operating System knowledge  ASCII o GUI design  E.g. - .NET, C# o Internal Component Design  UML structure design  UML behavior diagram
  3. Evaluating detailed design o Be professional
  4. Documenting detailed design o SDD
  5. Manage implementation

Read the slides