TDDC88/TDDC93

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

Requirements: Use-Case modeling - Diagram.

Create a box (rectangle) that symbolizes the "machine" being used. Inside the box, write different cases of usage, and link these usages to each person that might use the machine. Example: Use-case for a coffee-machine. A person named "CoffeeDrinker" can use the machine by "Buying a cup of coffee". A person "Service" might use the machine for "Cleaning the machine" and "Collect coins". Look it up in the slides, or in the summary document.

Quality: How do you calculate the "Cyclomatic Complexity" V(G) of a Graph G? Hint: E = Num. of edges N = Num. of nodes P = Num. of disconnected parts in the graph

Cyclomatic complexity V(G) = E - N - 2P E = Num. of edges N = Num. of nodes P = Num. of disconnected parts in the graph

Project Planning and Processes: What is "Kanban"?

Kanban ("Billboard" in Japanese) is a visual system for development that comes from Asia. The method is centered around billboard, which project members can add critic and ideas to for the management to process and apply to the project. This goes along with the mantra "leadership at all levels", making everybody responsible for changes in the process.

Quality: What does the term "MTTF" stand for?

MTTF stands for "Mean Time To Failure".

Quality: How do you calculate the "Availability" of a system?

MTTF/(MTTF+MTTR) MTTR = "Mean Time To Repair" MTTF = "Mean Time To Failure"

Quality: What does the term "MTTR" stand for?

MTTR stand for "Mean Time To Repair".

Quality: How do you calculate the "Maintainability" of a system?

Maintainability = 1/(1+MTTR) MTTR = "Mean Time To Repair"

Requirements: Specification - Should the SRS cover design details?

NO! Leave this to the design part of the project instead of the requirements.

Quality: Is "Inspection" the same thing as Testing?

No! Inspection is a peer examination of the development process, not a test of a module in the system similar to the testing covered in Chapter 4: Testing and SCM.

Requirements: Class-model - Does the Class-model require a description?

Not usually. No information given on what a description SHOULD look like. Make something up if required.

Project Planning and Processes: What is a "Process"?

Processes are a way of reaching the goal. They are an ordered set of activities where each activity has an ENTRY and an EXIT criteria, and some constraints.

Project Planning and Processes: What is the "Iterative Model"? (Incremental Model)

The iterative/incremental model is a variant of the V-/Waterfall-model, where the project is being done in several cycles. Where the V-/Waterfall-model is originally done in one long sequence, the iterative/incremental model runs through the V-/W.-model several times with subsection of the projects as the main focus on each iteration of the V/W.-model cycle. At the end of each cycle feedback can be given on the process, and this feedback can thereafter be taken into consideration during the next iteration of the process cycle. Cons: Troubles with mapping different requirements to different cycles can lead to missing features, bad prioritizations, e.t.c. Pros: Flexibility, something that the V/W-model otherwise lacks. Spreading out workload between different workers is a possibility now, leading to the project being able to multitask several project parts at the same time. Divide and conquer.

Project Planning and Processes: What is the "Project Plan"?

The project plan is a tool for the project manager to get a clear overview of the process plan and the project goals. It can also be used as a communication tool between stakeholders and specifies WHAT should be done, WHEN it should be done, and by WHO.

Quality: How do you perform a "Usage based" metric?

Description: Number of good and bad features recalled by users. 1) Obtain data - Set up a test scenario. Let the users run the scenario. Collect the number of good and bad features in a questionaire afterwards. 2) Calculate the metric - Take the average number of good and bad features. 3) Relevant quality factor: RELEVANCE - Many good and few bad features indicates a good match with the users mindset.

Quality: How do you perform a "Volume" metric?

Description: Number on non-commented lines of code. 1) Obtain data: Count non-commented lines of the code with a tool. (Humans can be tools as well.). 2) Calculate the metric: See 1). 3) Relevant quality factor: RELIABILITY - It is often hard to understand a large portion of code; the fault density is often higher for large modules.

Project Planning and Processes: SMART-Goals - What does the letters in SMART stand for?

Specific - WHAT will you do, and WHY is it important? Measurable - A goal has to be measurable somehow, obviously. Agreed upon - All stakeholders agree to this goal (or atleast the majority) Realistic - Possible/doable with the current resources, knowledge, and time. Timely - A clear and specified time frame for the goal.

Testing and SCM: What is the main goal of "Testing"?

Testing is about making sure that the system we are testing is performing as expected. The system is EXECUTED, the results are OBSERVED, and an EVALUATION is made.

Quality: How do you perform a "Verification and validation" metric?

Description: Rate of severe defects found in inspection of design description 1) Obtain data - Perform an inspection according to your process. Make sure that severity is in the classification scheme. 2) Calculate the metric - Divide the number of defects classified with highest severity with the total number of defects in the inspection record. 3) Relevant quality factor: SAFETY - A high proportion of severe defects in design indicates fundamental problems with the solution and/or competence.

Requirements: What is a "Non-functional requirement"?

Design constraints that does NOT change the direct functionality of the object. Examples of design constraints: Usage of a certain language, like swedish or swahili. Usage of certain colors. You get the idea. Example: "The minimum response time is 2.0 seconds", or "The system should be written in Assembly and Javascript".

Quality: How do you calculate the "Failure Intensity" of a system?

Failure Intensity = (1-R)t I have no idea what either 'R' or 't' stands for, sorry.

Testing and SCM: What is a "Distributed" system?

Git is a distributed system! A distributed revision control system is where the repository is locally placed on your own machine, and the centralized working version is the current one. With Git you can commit several times without pushing anything onto the central server.

Project Planning and Processes: Shortly describe the method "Delphi".

The Delphi-method consists of several (up to a lot of) experts in a certain area of expertise whom each make a prediction and show these predictions anonymously to each other for discussion. If no converging conluscion can be drawn, the process is restarted.

Requirements: ER-diagram - What is it?

The ER-diagram describes relations between objects, and lists attributes to objects. Small example: ER-diagram between a STUDENT and a COURSE. The STUDENT has a relation to the COURSE by being ENROLLED-IN the COURSE. The STUDENT can have several attributes, such as NAME, PERSONAL NUMBER, AVARAGE GRADE. The COURSE can aswell have different attributes, such as SUBJECT, COURSE CODE, e.t.c.

Project Planning and Processes: What is the "V-model"?

The V-model is a product development model. It starts at an abstract level (requirements, systems design), develops into a more implementation focused phase, further developing to a more abstract form of testing and maintenance. The Y-axis of the V-model is "somewhat" representated by ABSTRACTION, while the X-axis is definitely representated by TIME.

Requirements: Class model - Diagram

The class-model diagram is somewhat more advanced than the use-case. The diagram consists of different boxes, each box representing a part of the machine- and user-process. Each box is connected to at least one other box, sometimes more than one. For each connection, a quantity of each of the boxes is required, stating how many of respective box CAN be used at the given action. Each connection between boxes has a keyword that states WHAT the action between the boxes does. Look up a picture of it, can't be bothered to write this all out in the future lol. Look it up in the slides, or in the summary document.

Project Planning and Processes: What is the "Critical Path"?

The critical path in a diagram is a time frame which represents the most critical parts of the project. If any of these parts of the project gets delayed, the whole project risks being delayed.

Design and Architecture: Introduction

The design and architecture of a system is a description of how the system is/will be implemented. There are several ways and methods of doing this, each with its own advantages and disadvantages. Two things remain constant between most of the different methods in system design: focus on reusability where components in the project can be reused for several different purposes; modularization, where the project is divided into modules, often in cooperation with stakeholders to the project.

Design and Architecture: What basic thing differentiates "Architecture Style" with Design Styles?

"Architecture Styles" affect the systems architecture, rather than the systems design patterns. These two might sound simple to differentiate, but they can be easy to mix up - be careful!

Design and Architecture: Name the 3 main UML "Structure Diagrams" used in this course.

1) Class diagram - One of the most common UML-diagrams. Uses classes and relationships between objects. 2) Deployment diagram - Consists of artifacts that utilizes components and relationsships through communication paths. 3) Package diagram - Shows how the system can be build through different "packages". Can be made relatively simple. I highly recommend you to look up these diagrams in a course related lecture or summary notes.

Design and Architecture: What 3 main "Architecture Styles" has been discussed in this course?

1) Client-Server - Describes decisions of how much code and workload should be distributed between the client and the server. 2) Layered - A layered architecture has a clear structure to define the differences between low-level and high-level interfaces, where communication only exists between directly linked layers. 3) Service-Oriented Architecture - Consists of decomposing components that provide services for other components via communication protocols. The system is here viewed as a collection of services, rather than a collection of hardware and/or software. This style is most common on modern web-platforms, as it enables easy scaling of the system.

Testing and SCM: Termination of testing - How do you know when to stop testing?

1) Coverage of code requirements met. 2) Deadlines reached. 3) Test cases with a decided percentage passed. 4) Test budget depleted. Note: Full path coverage has been reached when all possible paths through a system has been executed.

Project Planning and Processes: What is the 4 main contents of the "Project Plan"?

1) Description - Background, constraints, goals, e.t.c. 2) Organization - Roles, available knowledge, training plans, communication 3) Time and Resource plan - Resources, milestones, tollgates, deliverables, activities, e.t.c. 4) Risk management - Risks and their respective risk management plan.

Quality: What is the main goals of the "Individual checking" process in Inspection?

1) Exam the product individually and report all defects to the inspection leader. 2-3 pages per hour OR 100-200 lines of code is the standard rate.

Testing and SCM: What are the 4 main "System testing" tests?

1) Function test - Tests functional requirements. Tests one function at a time; recommended to use an independant test team who knows expected inputs and outputs. 2) Performance test - Tests non-functional requirements. Consists of a number of tests, e.g. timing tests, volume tests, security tests, maintenance tests, and usability tests. 3) Acceptance test - Tests that the users or customers needs are fulfilled. 4) Installation test - Thorough testing at the customers site, verifying that installation of system has succeeded.

Requirements: Specification - What is it?

A "Software Requirements Document" a.k.a. "Software Requirements Specification" (SRS for short) is an official documentation of WHAT should be implemented to the projects object.

Project Planning and Processes: What is a GANTT-chart, and what does it look like?

A GANTT-chart is a tool to visualize the process of a project. Each part of the project is given a certain time frame, which makes the time scale of the project easily visualized. Look up a picture of it a GANTT-chart, either online or in the slides.

Requirements: Use-Case - Description

A Use-Case most likely will come with a use-case description. The goal of the description is to describe a scenario for when the specified machine is in use. Example using the coffee-machine used in the lectures: A person "CoffeeDrinker" approaches the machine with his cup and a coin of SEK5. He places the cup on the shelf just under the pipe. He then inserts the coin, and press the button for coffee to get coffee according to default settings. Optionally he might use the other buttons to adjust the strength of the coffee and decide to add sugar and/or milk. The machine processes the coffee and bell when it is ready. "CoffeeDrinker" takes his cup from the shelf.

Design and Architecture: What is a "Design Pattern"?

A design pattern is a standard solution to a system design, enabling reuse if information and components.

Requirements: What is a "Feature"?

A distinguishing characteristic of a system item. Example: An SMS-delivery notification system, that activates when an order is on the way. Think of how DHL handles their deliveries.

Requirements: What is a "Functional requirement"?

A functional requirement describes the functions that the software is to execute. Can be easily testing by giving input and controlling the output. Think of it like "f(x) = y". Example: "The user shall be able to add an item to the shopping basket.".

Requirements: What is a "Stakeholder"?

A stakeholder is someone who is invested in a project. The "someone" can refer to an individual, a group, an orgraniztion, or anything that could include a human in any way possible. Stakeholders usually wants to see the project succeed, as the invested time/money into it.

Requirements: User stories - What are they, and what do they look like?

A user story is a very simple case, describing WHAT a PERSON want for a certain BENEFIT. It will always (at least most of the time) contain an actor (person), an object, and specify a benefit. Example: As a STUDENT (actor) I want FLASHCARDS (object) to study on, so that I may PASS THIS TEST (benefit).

Testing and SCM: What is "Big bang" integration/testing?

Big-bang integration is exactly what is sounds like: a big bang of modules being integrated with each other, followed by a big general test of the whole module. This method is quick to perform, but it leaves a lot of room for error, as it's likely that critical errors can be "hidden" inside modules not hit by the more general system test.

Requirements: Specification - Name 3 cons of SRS.

1) Time: Takes time to read and understand the SRS 2) Broad: Usually very general and broad descriptions, needs to be tailored to the product. 3) Is not a guarantee for a good SRS - could produce a bad SRS. (I have no idea, just copy-pasting this one.)

Testing and SCM: What are the biggest differences between "Black box testing" and "White box testing"?

"Black box testing" generally seeks to test the system as a whole, rather than separate modules within the system. Given a certain input, which is known from the start, the system is expected to release a certain output, that is also known from the start. Example: Assume function f(x, y) adds two numbers x and y together. The expected output is the sum of x+y. "White box testing" generally seeks to test separate modules within the system, looking to activate certain modules with certain inputs AND outputs. Example: Assume there exists two separate functions, f1 and f2. Function f1 gets called if the input value is below a set value, and function f2 gets called if the input equals or is bigger than the set value. By using different inputs, testing if the functions behave correctly for given inputs is the core of white box testing.

Testing and SCM: What is "Continuous integration", and what are the most important practices of it?

"Continuous integration" means that you integrate changes frequently (most often daily). Most important practices: 1) Automated building of the system 2) Automated testing of the system 3) The use of a SCM system for integrating code.

Testing and SCM: What is the main purpose of "Integration testing"?

"Integration testing" is done on a system of modules when integrating a new module into the system. This module of testing comes naturally after a module has passed a "Unit testing", then being integrated.

Project Planning and Processes: What is "Lean software development"?

"Lean software development" is an adaption of the lean principles for software development. This method is often favoured by start-up-companies, due to it's core principles of eliminating wasteful project parts or resources, deciding on things as late as possible, and to empower the team.

Testing and SCM: What is "Revision control"?

"Revision control" is central in SCM. Revision control means that there is a unified repository, with the possibility of different channels and branches. The repository most likely contains: a "trunk" branch, containing the latest produces code ready for testing; a testing-branch, where code is put for testing: a release branch where the latest code that has passed testing is put. Again, compare this to what a general repository on GIT looks like as they are very similar, HOWEVER not the same.

Testing and SCM: What does "SCM" stand for?

"SCM" is short for "Software Configuration Management".

Testing and SCM: What is "Sandwich" testing?

"Sandwich" testing is a combination of Bottom-up and Top-down testing, doing both tests parallell. This method works well with a big system that contains many layers of modules, but will require more resources put into testing, and will risk not testing subsystems as thoroughly as other testing models.

Testing and SCM: What is "Centralized (SVN)"?

"Subversion" (SVN) is a common centralized revision control system where the code repository if centralized on a server. The developer downlaods a local working copy from the server. When ready to commit their changed version of the code, they solve any merge conflicts with the current code before commiting then uploading the code. The latest version of the code is kept on the server, while the developers only have a local version of the code locally on their own machine.

Testing and SCM: What is the main purpose of "Unit testing"?

"Unit testing" is done on separate modules (units) while they are being developed. If the module passes the tests, it can be evaluated for integration into a bigger system. The system model seeks to find faults in the module. (Like all testing to be fair.)

Requirements: Analysis - What classes of analysis exists?

* Functional vs. Non-functional * Source * Product or process requirements * Priority * Scope - Affected components * Stability

Requirements: Specification - What are the 5 main parts of a SRS (Software Requirements Specification)?

* Functionality - What the software should do * External interfaces - How it interacts with people and other software * Performance - Speed of functions e.t.c. * Attributes - Portability, maintainability, security e.t.c. * Design contraints - Language, policy, required standards, laws, e.t.c.

Requirements: Analysis - Name the three biggest "conceptual modeling" models used in analysis.

* Use-cases * Class-models * ER-modeling

Quality: What is the main goals of the "Edit and Follow-up" process in Inspection?

1) Author resolves items 2) Inspection leader verifies that all items are closed.

Project Planning and Processes: What are the general 3 (5) steps for "Risk planning"?

1) Avoidance - Reorganize so the risk dissappears 2) Transfer - Reorganize so that someone else takes the risk 3) Acceptance - 2 choices 3.1) Mitigate - Lower the probability 3.2) Contingency plan - Lower the impact

Testing and SCM: In System tesing there is "Acceptance test". What are the 3 main tests run in an "Acceptance test"?

1) Benchmark tests - Specially designed test cases 2) Pilot tests - In everyday work. Consists of two main categories. 2.1) Alpha test - At the developers site, in a controlled enviroment. 2.2) Beta test - At the customers site. Can subtitute "Installation test". 3) Parallell tests - Testing the new system in parallell with the old system.

Project Planning and Processes: Risk management - What are the 4 main types of risks?

1) General risk - A risk that can happen to any kind of project, not just this specific project. "A team member gets sick", "The project gets delayed for whatever reason." 2) Direct risk - Where the project has GREAT control. Example: "Our system will not scale very well, or at all." 3) Project Specific Risk - A risk that is specific to the specified project, that can NOT be applied to any kind of project. "Anders needs to visit his family since his father is sick, delaying Anders project specific tasks." 4) Indirect risk - A risk where the project has little control over the risk. "The telephone lines we relied on for communication disappeared when the wizard started waving is wand around, leading to communication troubles with our Indian division."

Quality: What is the main goals of the "Input" process in Inspection?

1) Get an objective statement 2) Get the software products or artifacts to be inspected 3) Get inspection procedures 4) Create reporting forms 5) Retrieve known defects 6) Retrieve source documents - SRS, descriptions, documentation.

Requirements: Specification - Name 4 pros of SRS.

1) Good checklist 2) Adaptable to organization 3) Flexible in detailing requirements 4) Not everything specified in the SRS needs to be implemented

Quality: What is the main goals of the "Handle collected Data" process in Inspection?

1) Handla general inspection data 2) Classify data - logic problem, sensor problem, e.t.c. 3) Categorize - missing, extra, incorrect... 4) Rank - catastrophic, marginal, negligible..

Quality: What is the main goals of the "Plan and Overview" process in Inspection?

1) Identify the team and assign responsibilities. 2) Schedule meetings 3) Distribute material 4) Specify score and priorities 5) Introduce the product (Responsible: Author)

Design and Architecture: A "Box-and-line"-diagram is often used in systems design. What are the 3 views often associated with BoL-diagram?

1) Implementation view - Shows packages, components, and artifacts. 2) Execution view - Shows components, connectors and sub-systems. 3) Deployment view - Shows the physical machines.

Quality: Describe the main process (without details of each sub-process) of an "Inspection", and the responsible for each sub-process.

1) Input - Responsible: Author 2) Plan and overview - Responsible: Leader 3) Individual checking - Responsible: Inspectors 4) Inspection meeting - Responsible: Leader, Recorder, Reader, and Inspector 5) Edit and follow-up - No responsible 6) Handle collected data - No responsible

Quality: What is the main goals of the "Inspection Meeting" process in Inspection?

1) Inspect, produce a defect list. 2) Review and make ONE exit decision based on the alternatives below: * Accept with no further verification * Accept with reword verification * Reinspect - redo the process

Quality: What are the 5 main participants (roles) in an inspection?

1) Leader (moderator) - Planning and organizing the process of inspection 2) Recorder - Documents the inspections defects, results, and recommendations. Can be the same person as the leader. 3) Reader - Informs about the software product and highlights important aspects. 4) Author - Performs the rework to meet the set critera. Shall nog be the leader, recorder, or the reader. 5) Inspector - Identifies and describes defects, can be assigned different topics. All participants are inspectors.

Quality: What are 4 other software review methods discussed in this course?

1) Management reviews - Check deviations from plans, performed by management. 2) Technical reviews - Evaluate conformance to specifications and standards, performed by technical leadership with a high volume of materials. 3) Walk-through - An informal atmosphere where the author presents, leads, and controls the discussion. 4) Audit - External evaluation of conformance to specification and standards.

Quality: What are some "Software Metrics" that can be used to measure quality factors?

1) Number of pages 2) Number of elements in a design 3) Number of lines of code 4) Iteration length of the process 5) Average number of hours to learn a system to decide quality.

Project Planning and Processes: What are the general 3 steps for "Risk Analysis"?

1) Probability - On a scale from 1-4, where 1:= Low, 4:=Very High 2) Impact - On a scale from 1-4, where 1:= Insignificant, 4:= Catastrophic 3) Risk Magnitude Indicator - Probability * Impact. Used to compare different risks, allowing for prioritizing.

Requirements: Validation (Formalization) - What are some ways to validate requirements specifications?

1) Prototyping 2) Simulation 3) Software Reviews 4) Model checking 5) Formal proofs 6) Acceptance testing

Project Planning and Processes: What are the general 3 steps for "Risk Management?"

1) Risk identification - "What can go wrong?" 2) Risk analysis - "How bad is it?" 3) Risk planning - "What do we do if it happens?"

Design and Architecture: What are the 3 most common Design Patterns, and what do they cover?

1) Strategy - Design strategy can be used to avoid big and complex objects. E.g. using polymorphism in programming for classes that reuse a lot of attributes and functions. 2) Observer - Very similar to what an observer in programming is. Let objects "subscribe" to notifications from an external observer when some kind of change has been made. 3) Facade - A unified interface to a subsystem, making the system easier to use. This can be used to protect the contents of the subsystem and make it able to change different parts without having to change the entire system. The "facade" will here serve as the gateway between the subsystem and components outside of the subsystem.

Design and Architecture: What 5 main categories are included in the "Documentation of Design"?

1) System overview - A brief description describing users, the main requirements for the system, important background information, and a "mental" model of the system. 2) Structural views - An overview to describe each element in the system and its correlated relations. (Implementation, Execution, and Deployment view). 3) Mapping between views - Describes how the views relates to increase understanding. 4) Behaviour views - Describes behaviour for elements in the system. 5) Rationale - A motivation as to WHY the system is designed in a specific way, and WHAT should happend if the design was to change.

Requirements: Characteristics of good requirements and a small description of each characteristic.

1) Unitary (Cohesive) - The requirement addresses one and only on thing. 2) Complete - The requirement is fully stated in on place with no missing information. 3) Consistent - The requirement does not contradict any other requirement and is fully consistent with all authoritative external documentation. 4) Non-Conjugated (Atomic) - The requirement does not contain conjunctions 5) Traceable - The requirement meets all or part of a business need as stated by stakeholders and authoritatively documented. It specifies no more and no less than what is required. &) Current - The requirement has not been made obsolete by the passage of time. 7) Unambiguous - The requirement is concisely stated without recourse to techincal jargon, acronyms (unless previously defined in the document). It expresses only facts and not opinions. It is subject to only one interpretation. Negative statements are avoided. 8) Specify importance - The requirement must specify a level of importance. 9) Verifiable - The implementation of the requirement can be determined through basic possible methods such as inspection, demonstration, testing or analysis. If you nail all these flawlessly, hit me up and I will buy you a beer.

Quality: Name a few other metrics of measuring quality of a product/system?

1) Usage based metrics. 2) Verification and validation metrics. 3) Volume metrics. 4) Structural metrics. 5) Effort metrics

Design and Architecture: Name the 4 main UML "Behavioural Diagrams" used in this course.

1) Use-case digram - See previous questions about Use-Case (slide 7-8) 2) Activity diagram - Represents an activity from start to end. 3) State Machine diagram - Similar to the Activity Diagram, but represent states of objects rather than actions. 4) Sequence Diagram - A way of visualizing the interaction between different objects/processes over time. These can get pretty complex and hard to read. I highly recommend you to look up these diagrams in a course related lecture or summary notes.

Testing and SCM: What are the two most central concepts of testing?

1) Validation - Are we building THE RIGHT SYSTEM? Is the system we are building correctly fitted for the problem we are trying to solve? 2) Verification - Are we building THE SYSTEM RIGHT? Is the system we are building done in a correct way, or are we building the system wrong? Note the difference between the two.

Testing and SCM: What is SCM about?

When developing large systems with several developers working in parallell, a common system keeping track of changes needs to be used. This system can merge the works of all developers into one. This is similar to how GIT works.

Project Planning and Processes: What is "Agile Devlopment"?

Agile development is the main development method currently being used in software development. Agile development brands itself on being agile (who could have guessed) and flexible, being almost a polar opposite of e.g. the Waterfall-model. The agile development process comes originally from the "iterative" process, which itself comes from the V-/Waterfall-model. Agile development often sees changes during the project development, setting a big focus on being able to handle these changes effectively. Customer/client interaction with the project is important, as the customer/client can be a part of the development process and request for changes. Several different methodologies fall under the criteria of being "Agile development methods", such as "eXtreme Programming" (XP), "Scrum", and "Kanban".

Testing and SCM: What are some typical faults in a system shown in testing? Name a few.

Algorithmic - Division by zero. Computation & Precision - Wrong order of operations Documentation - Documentation doesn't match code. Stress/Overload - Data size (dimensions of tables, size of buffers). Capacity/Boundary - 'x' devices, 'y' parallell tasks, 'z' interrupts. Timing/Coordination - Real-time systems. Throughout/Performance - Speed doesn't match specified requirements. Recovery - Power failure. Hardware & System Software - External connections Standards & Procedure - Doesn't meet organizational standard - diffucult for programmers to follow each other.

Requirements: Elicitation - What is it?

An activity within requirements development that identifies sources for requirements and then uses elicitation techniques (e.g., interviews, prototypes, facilitated workshops, documentation studies) to gather requirements from those sources.

Requirements: What is an "Actor"?

An actor is an individual in a USE-CASE and/or USER-STORIES. For more information, see slides 7-8 (USE-CASE) and slide 17 (USER-STORIES).

Testing and SCM: What is "Bottom-up" testing?

Bottum-up testing tests modules from the "lowest level", moving upwards towards the top-most modules. The top-most modules can be seen as the "main"-modules, most likely being the biggest modules of the system, and having a lot of connections to other modules, linking these together. The "low-level" modules are the ones that are the most specialized, most likely serving a specialized purpose. To be able to test lower modules before knowing whether the higher-level modules work, requires simulating the higher-level modules. The simulation modules are called "drivers". These drivers can be hard to implements properly, leading to risks of failing the test based on bad drivers. Pros: Easy testing model for incremental development, adding new low-level modules for testing requires virtually no additional work on the testing model. Cons: By testing the biggest modules late in the testing process, big structural problems will be found late in the testing process. Drivers being difficult to develop. In an analogy of the body, the top-most level would be the brain, being the mainframe of the body. The a low-level module could for example be the pain-receptors in your thumb. Bottom-up testing could start by testing if the pain-receptors in your thumb works properly, before moving towards broader modules, e.g. pain-receptors in your hand.

Project Planning and Processes: Shortly describe the method "COCOMO".

COCOMO is an algorithmic formula where a number of factors are estimated using data from earlier, and sometimes other, projects. Example: Based on the lines of code in this project, estimations on the time length can be done.

Project Planning and Processes: What are the 4 main parameters to consider when setting a goal?

Calendar time - How much time to we need? Resources - What resources do we have? Personel, knowledge, financial, e.t.c.. Features - What are the features we want to implement? Quality - What quality do we require on the finished product? These 4 parameters can be flexible. Changing either of them usually requires changing another one in response. E.g. if you increase the ammount of features, you will likely have to increase either the calendar time and resources, or lower the requirements on quality.

Requirements: Analysis - What is it?

Classifying and resolving conflicts between requirements

Quality: Name a couple of the "Measurable Software Quality Factors" that exists.

Correctness Reliability Efficiency Useability Integrity Maintainability Flexibility Testability Security Portability Reusability Interoperability Surviveability Safety Manageability Suppoertability Replaceability Functionality

Project Planning and Processes: What are some common roles in a software project? Try to at least remember a few.

Project manager - Ensure that the plan is beging followed and goals are being reached. Product manager - 2 types PM1 - Strategic (Product owner or sponsor) - Market communication and analysis, budget responsible, decides features. PM2 - Operational - Technical management and expert, effort estimation. Configuration manager - Selects and maintains tools, decides on what's in a release. Line manager - The legal employer, ensures competence development and a good working enviroment. Process manger - Decides on processes and adherence to these. Analysts - Handles everything that has to do with requirements, writes the SRS. Architect - Ensures that requirements are met and specifies a high-level architecture. Lead designer - Handles prototyping and design issues not covered in architecture, also designs the UX. Enviroment manager - Creates and maintains the enviroments for development and testing. Developer - Develops the system. Procurement resposible - Buys components and licenses. Component adaptor - Adapts external or reused components to the system. Integrator - Puts the pieces of the software together to a system. Testers - Tests and evaluates requirements. Quality coordinator - Measures quality and organizes reviews. Deployment manager - Ensures that the product is installed and made available. Techincal writer - Responsible for documentation. Course developer and leader - Creates and performs training material and courses. Helpdesk - Helps with and documents customer issues. Operations manager - Ensures that services are provided to the customer. Systems engineer - Performs maintenance and monitoring on active systems. Librarian - Manages component library and identifies reuseable components. Document responsible - Decides on standards and database modeling.

Requirements: What is "RAM"? (Hint: Not Random Access Memory)

RAM stands for "Requirements Abstraction Model", utilizing levels of abstraction. The requirements can be applied to different levels of abstraction of the product, and through the RAM these requirements can be compared to each other even though the exist on different abstraction levels. Example: Think of building a car as a project. There is a requirement on the engine to perform a certain way. This is abstraction level 1, the broadest. There is also a requirement on a certain part of the engine to perform a certain way. This is another level of abstraction, as the focus has been narrowed down inside the engine. By using RAM, these requirements can be compared. (I see no benefit, but w/e.)

Project Planning and Processes: What is "RUP" (Rational Unified Process)

RUP (Rational Unified Process) is an iterative software development methodology. It somewhat resembles an agile development process. The 4 main parts of the RUP is: 1) Inception - Requirement specification, prototyping 2) Elaboration - Architecture, project plan 3) Construction - Development and testing 4) Transition - Delivery to customer

Quality: How do you calculate the reliability of a system?

Reliability = MTTF/(1+MTTF). This gives the estimated probability. (MTTF = "Mean Time To Failure")

Project Planning and Processes: What is "SCRUM"?

Scrum is a very popular agile development method, most likely the most used method of them all. Scrum is largely focused around "sprints", which is basically an iteration. Sprints lasts usually 1-4 weeks, depending on the project. The first thing in a scrum is to write user stories based on a product backlog. From these user stories, different tasks can be distributed to process throughout the sprint. If there is any feedback to process from the last sprint, this should also be done here. At the end of each sprint, two reviews are held: one for the development process in itself; one for the product produced during the sprint. Scrum also frequently uses smaller meetings, often so-called "stand-up-mettings", which lets the team quickly catch up on team progress, and possibly voice concerns or questions.

Project Planning and Processes: What is "Slack/Float Time"?

Slack/Float time is the total available time for a specific part of the project for the part NOT to delay other parts of the project. If a part of the project exceeds it's available time, it will delay some (if not all) other parts of the project.

Project Planning and Processes: What is the "Waterfall-model"?

The waterfall model is supposedly similar to the V-model, it's just that you remove the Y-axis. The waterfall model lists all the development processes for the project, and will not start any other process until the current process is finished. This model naturally comes with both pros and cons. This model is very old, and the constraints created on the model is rarely fitting to modern projects, which is why it's so infrequently used. Pros: It's very simple to read and to understand. It can be applicable to short projects, or projects where the requirements of the projects are not supposed to change during the projects development. Cons: Since the premise of the model is to plan the whole process of a project before the development starts, the model does not react well to changes in the development process during development. It's very hard to predict how long the project will take, as the project only moves forward when a part of the project is finished. This also makes a set time frame from the start impossible to implement.

Testing and SCM: What is "Top-down" testing?

Top-down testing is essentially the reverse of bottom-up testing. (Bottom-up testing slide on page 65) Just as bottom-up testing required "drivers" to simulate high-level modules, top-down testing requires a similar simulation for lower-level modules, called "stubs". These "stubs" mimic the output of lower level modules. Pros: Stubs are generally easier to write than drivers, but the test requires a bigger amount of stubs than respective drivers. Cons: Basic functionality of the system is being tested late, leaving risks of having simple faults in modules open until the end of testing.

Design and Architecture: What is "UML"?

UML is short for "Unified Modeling Language". UML is used to visualize the design of a system in a simple and quick to understand way. I highly suggest you to look up pictures of what an example UML-digram looks like for reference. There are several different types of diagrams that incorporate UML. The different types can be divided into two different classes of UML-diagrams: structural diagrams; behavioral diagrams.

Requirements: Requirement Engineering - What is it's usage? What kind of keywords are important to use in a requirements specification?

Usage: Clarify requirements for a product to avoid misunderstandings of the product, and to specify what is to be delivered in the end of the project. Note: Important to use MODAL VERBS such as "SHALL", "MUST", "WILL".

Project Planning and Processes: What is "eXtreme Programming (XP)?

eXtreme Programming is a very different, and sometimes brutal development process. The process main elements are pair programming, extensive code reviews, test driven development and a flat organization with frequent communication between personell. XP spouts bravery, where it encourages it's users to not be afraid of throwing out big parts of the project and starting over. The method is claimed to be too unstable and lack overall design and documentation.


Kaugnay na mga set ng pag-aaral

NBCOT Exam: Hand and UE Disorders and Injuries

View Set

Yak - Chapter 13 Distribution and Deployment of Field Forces

View Set

Transitions Exam 1: Nursing Licensure and Certification/ Nursing Research and Evidence-Based Practice

View Set

lesson 9.4 Animal feeds and feeding AG

View Set