ASSIGNMENT 02 FRONT SHEET Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Unit 09: Software Development Life Cycle Submission date 9/5/2022 Date Received 1st submission Re-submission Date 9/5/2022 Date Received 2nd submission Student Name Nguyen Khac Minh Student ID GCH200526 Class GCH0905 Assessor name Do Tien Thanh Student declaration I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that making a false declaration is a form of malpractice. Student’s signature Nguyen Khac Minh Grading grid P5 P6 P7 M3 M4 1 M5 M6 D3 D4 ❒ Summative Feedback: ❒ Resubmission Feedback: 2.1 Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date: 2 Contents Task 1 .......................................................................................................................................................................................................................................................... 4 Task 2 .......................................................................................................................................................................................................................................................... 8 Task 3 ....................................................................................................................................................................................................................................................... 20 TASK 4 ..................................................................................................................................................................................................................................................... 31 3 Task 1 dentify the stakeholders, theirs roles and interests in the case study A non-functional requirement is a specification that describes the system’s operation capabilities and constraints that enhance its functionality. Classification of non functional requirements: -Product-oriented attributes • Performance : (a) response time, (b) throughput (number of operations performed per second) • Usability: effort required to learn, use, provide input and interpret 4 results of a program • Efficiency: minimal use of resources (memory, processor, disk,network…) • Reliability: of computations, precision • Security • Robustness: in the presence of faults, stress, invalid inputs… • Adaptability: to other environments or problems • Scalability: for large number of users or quantities of data • Cost: total cost of ownership (TCO) for acquisition, installation, use,disposal . -Product family-oriented attributes • Portability: does it work for several platforms • Modifiability: addition of new functionalities • Reusability: of components, code, designs, and even requirements in other systems • They are frequently demanded by developers to: • Reduce development costs 5 • Increase revenues by creating several versions derived from a product or by personalizing it. - Process-oriented attributes • Maintainability: changes to functionalities, repairs • Readability: of code, documents • Testability: ease of testing and error reporting • Understandability: of design, architecture, code 6 • Integrability: ability to integrate components • Complexity: degree of dependency and interaction between components Discuss the relationships between the FRS and NFRS. + E-Commerce Trade Platform System: Functional requirements (FRs) are the what of your website. It is all about the functions and core operations of your e-store that enable a user to take action on the website. They can be implemented as a single website feature and form the basis of the whole software development process. Example: Add the following product filtering features to our home improvement webstore: price, popularity, power rate (Watt), heating area (m2), and usage (bathroom, kitchen, etc). Non-functional requirements (NFRs) are the how of your website. Named quality attributes of a system, they form user experience and imply some global, abstract expectations from the product. Non-functional requirements may derive from a sum of functional requirements and are implemented as a sum of web features. Example: Products should be easily found and have an appealing display on the website. If needed, you may state suitable additional assumptions about the project in order to justify the technique(s) that you choose. 7 The cost and time required for the development should not affect the design and implementation of the system.The engineer needs to prepare the document depending on Non-functional requirements need the natural language and functional requirements need the structured language to understand better. It gives the matrix that shows each requirement related to each other. Non-functional requirements linked with functional requirements to list, identify the system levels that have related each other.The engineer needs to prepare the way to link the functional to non-functional to implement it. The functional requirements enforce the non-functional requirements that shall be recorded and tracked. 1. Mean Time to failure (MTTF) -There should be no more Mean Time to failure (MTTF) -There should be no more than three system failure per month. than three system failure per 2. ATM machine shall validate PIN of the user during along with biometric verification. 3. Each page must load within 2 seconds. month. This is non functional requirement. login ATM machine shall validate PIN of the user during login along with biometric verification. This is functional requirement. Each page must load within 2 seconds. This is non functional requirement because speed is in consideration. Task 2 Analyse the requirements that you identified in Task 1 using a combination of structural and behavioural modelling techniques that you have learnt. Scope, you only need to construct the activity and class diagrams for 8 the use case of one top- level function. The activity diagram needs only cover 2 sub-functions. • structured analysis and design techniques include DFD, ERD, flowcharn atnd pseudocode A data-flow diagram is a way of representing a flow of data through a process. It also provides of each entity and the process itself fig: Data flow diagram The data-flow diagram is a tool that is part of structured analysis and data modeling. When using UML, the activity diagram typically takes over the role of the data-flow diagram. 9 Eg: plan is a site-oriented data-flow pla CHARACTERISTICS : *Two-dimensional summary: DFDs offer a way to summarize the data flow characteristics of a process on a single page. Completeness. ... Processing, not processes. Patterns. * Logical DFD : Logical data flow diagram mainly focuses on the system process. It illustrates how data flows in the system. Logical DFD is used in various organizations for the smooth 10 running of system. Like in a Banking software system, it is used to describe how data is moved from one entity to another. Physical DFD : Physical data flow diagram shows how the data flow is actually implemented in the system. Physical DFD is more specific and close to implementation. • Tools: ConceptDraw. Creately. Data flow diagram software. Lucidchart is a visual workspace that combines diagramming, data visualization, and collaboration to accelerate understanding and drive innovation. Top Reasons SmartDraw is the Best Data Flow Diagram (DFD) Software. Click simple commands and SmartDraw builds your data flow diagram for you. Add or remove a shape, and SmartDraw realigns and arranges all the elements so that everything looks great. * An entity relationship diagram (ERD), also known as an entity relationship model, is a graphical representation that depicts relationships among people, objects, places, concepts or events within an information technology (IT) system. 11 CHARACTERISTICS : • • • • The Entity Relationship Diagram (ERD) is a graphical representation of an ERM and is currently one of the most popular and widely used database design tools. The three main components of the ER Model are entities, attributes and relationships. ERD attributes are characteristics of the entity that help users to better understand the database. Attributes are included to include details of the various entities that are highlighted in a conceptual ER diagram. 12 • Also known as ERDs or ER Models, they use a defined set of symbols such as rectangles, diamonds, ovals and connecting lines to depict the interconnectedness of entities, relationships and their attributes. METHODS : 1. One-to-One Relationship. 2. One-to-Many or Many-to-One Relationship. 3. Many-to-Many Relationship. TOOLS : • • • • • • Trevor.io Lucidchart Creately DBDiagram ERDPlus DrawSQL TECHNIQUES AND APPROACHES : 1. Determine the Entities in Your ERD. Start by identifying the “what”s in your system or architecture. 2. Add Attributes to Each Entity. 3. Define the Relationships Between Entities. 4. Add Cardinality to Every Relationship. 13 5. Finish and Save Your ERD. flowcharn atnd pseudocode :A use case diagram is a graphical depiction of a user's possible interactions with a system. A use case diagram shows various use cases and different types of users the system has and will often be accompanied by other types of diagrams as well. The use cases are represented by either circles or ellipses 14 15 CHARACTERISTICS OF USE CASE DIAGRAM : • • • • Organizing functional requirements. Modeling the goals of system user interactions. Recording scenarios from trigger events to ultimate goals. Describing the basic course of actions and exceptional flow of events. METHODS OF USE CASE DIAGRAM ; • UCDs have only 4 major elements: The actors that the system you are describing interacts with, the system itself, the use cases, or services, that the system knows how to perform, and the lines that represent relationships between these elements. TOOLS : IBM Rational Rhapsody : Graphical development environment for model-based software development and validation. Microsoft Visio : Proprietary diagram and vector graphics software. TECHNIQUES AND APPROACHES : • • • • Identify who is going to be using the website. Pick one of those users. Define what that user wants to do on the site. For each use case, decide on the normal course of events when that user is using the site. 16 CLASS DIAGRAM :Class diagram is a static diagram. ... The class diagrams are widely used in the modeling of objectoriented systems because they are the only UML diagrams, which can be mapped directly with object-oriented languages. 17 CHARACTERISTICS OF CLASS DIAGRAM : 18 • • A class diagram resembles a flowchart in which classes are portrayed as boxes, each box having three rectangles inside. The top rectangle contains the name of the class; the middle rectangle contains the attributes of the class; the lower rectangle contains the methods, also called operations, of the class. METHODS : 1. STANDARD : Standard methods are basic things that all classes of objects know how to do, such as create a new object instance. Custom methods are designed for a specific class. 2. CUSTOM : Custom methods are designed for a specific class. TOOLS : • • • smartdraw lucidchart Microsoft visio TECHNIQUES AND APPROACHES : • • • • • Upper section: Contains the name of the class. This section is always required, whether you are talking about the classifier or an object. Middle section: Contains the attributes of the class. Bottom section: Includes class operations (methods). The message parameters, as well as the type of data, may be included on the class diagram. There are two types of methods: standard and custom. 19 • Standard methods are basic things that all classes of objects know how to do, such as create a new object instance. SEQUENCE DIAGRAM : A sequence diagram or system sequence diagram (SSD) shows object interactions arranged in time sequence in the field of software engineering. ... Sequence diagrams are typically associated with use case realizations in the logical view of the system under development. Task 3 Core banking may be a banking service provided by a gaggle of networked bank branches wherever customers could access their checking account and perform basic transactions from any of the member branch offices. Core banking is usually related to retail banking and lots of banks treat the retail customers as their core banking customers. Businesses area unit sometimes managed via the company banking division of the establishment. Core banking covers basic depositing and disposal of cash. Normal Core Banking functions can embody dealings accounts, loans, mortgages and payments. Banks create these services offered across multiple channels like ATMs, net banking, mobile banking and branches.[1] The core banking services bank heavily on laptop and network technology to permit a bank to modify its record keeping and permit access from any location. it's been the event of banking software system 20 that has allowed core banking solutions to be developed Core banking solutions is jargon utilized in banking circles. The advancement in technology, particularly net and knowledge technology has light-emitting diode to new ways that of doing business in banking. These technologies have reduced manual add banks and increasing potency. The platform wherever communication technology and knowledge technology area unit united to suit core desires of banking is thought as core banking solutions. Here, laptop software system is developed to perform core operations of banking like recording of transactions, record maintenance, interest calculations on loans and deposits, client records, balance of payments and withdrawal. This software system is put in at totally different branches of bank then interconnected by suggests that of laptop networks supported telephones, satellite and therefore the net. It permits the banks customers to control accounts from any branch if it's put in core banking solutions. Gartner defines a core industry as a back-end system that processes daily banking transactions, and posts updates to accounts and different monetary records. Core banking systems generally embody deposit, loan and credit-processing capabilities, with interfaces to account book systems and news tools. Core banking applications area unit usually one in every of the biggest single expense for banks and bequest software system area unit a significant issue in terms of allocating resources. Strategic defrayal on these systems relies on a mixture of service-oriented design and supporting technologies that make protractile architectures. Many banks implement custom applications for core banking. Others implement/customize business ISV packages.[2] While several banks run core banking in-house, there area unit some that use outsourced service suppliers yet. There area unit many Systems integrators like cognizant Technology Solutions, 21 EdgeVerve Systems restricted, Capgemini, Accenture, IBM and TCS that implement these core banking packages at banks. ***The requirements below partially describe a software that is aimed at providing an online dog minding service. The application allows booking a service with a dog minder, communication with the dog minder and real time tracking of dog walks (these requirements are omitted in this question). Discuss how UML state machine can be used to specify the software behaviour. Differentiate between FSM Ad extended FSM using the case study 22 Finite state machine: • • • • • • Finite state machine is used to recognize patterns. Finite automata machine takes the string of symbol as input and changes its state accordingly. In the input,when a desired symbol is found then the transition occurs. While transition,the automata can either move to the next state or stay in the same state. An FSM always performs a transition on a given input from one state to another FA has two states:accept state or reject state.when the input string is successfully processed and the automata reached its final state then it will accept Examples:There are many examples of finite state machine we could use: 1. a vending machine, 2. a subway entrance turnstile 3. a heating system Extended finite state machine: • • • • extended finite state machines provide a powerful model for the derivation of functional tests for software systems and protocols. Many EFSM based testing problems, such as mutation testing,fault diagnosis, and test derivation involves the derivation of input sequences that distinguish configuration of a given EFSM specification. An EFSM however only performs a transition when a given set of conditions have been satisfied. An EFSM allows you to also use variables for example you could implement a for loop.This allows you to easily model algorithms that would otherwise require a combinatorial explosion of states. 23 Discuss how the data-driven approach improves the reliability and effectiveness of software WHAT IS DATA-DRIVEN DESIGN? Data-driven design is the practice or approach of making decisions based on data collected on how customers interact with a product or service. The goal is to find validation or invalidation for design decisions based on direct and indirect feedback. Or in another way, it is helpful for answering the question of “Did my design solve the problem? based on how people did or didn’t act.” HOW DOES DATA-DRIVEN DESIGN WORK? The Internet of Things (IoT) has enabled products that are capable of sending usage data back to base. Data-driven Design uses this feed of real-world data to help manufacturers understand how products operate in the field. Manufacturers can access this data directly from connected products or via other sources, such as PLM, ERM and CRM enterprise systems. Raw data is then converted into meaningful insight, enabling businesses to make more informed, market-driven decisions about future product versions. THE BENEFITS OF DATA-DRIVEN DESIGN 24 There are two major benefits of using data driven design. It allows you to: 1. Make informed design decisions based off real user needs 2. Prioritize what issue to solve based on its relative impact for users However, as with any tool, it can be a double-edged sword. As bias exists through the process of data collection and analysis, there is a risk that data can be used for the sake of arguing for a point of a view rather than a way to improve the design process. EXAMPLE: An example of quantitative data is looking at website traffic. If there are two competing design ideas within your team for a landing page, rather than assuming one is more effective at getting customers to convert based on the team’s or an individual’s opinion, you can run an A/B test. An A/B test splits customers between two different designs of the same thing. In this case, a landing page. 50% of customers get shown version A and 50% see version B. If 10,000 visitors go to the website and those who were exposed to version A converted higher than B, then you now have data to back up that version A was the better design. CODE: class Account: def __init__(self, number, balance): self.number = number self.__balance = balance 25 def _authenitcate(self, pin): pass def deposit(self, amount): pass def withdraw(self, amount): pass def __createTransaction(self, datetime): pass class CurrentAccount(Account): def __init__(self, number, balance, interest_rate): Account.__init__(self, number, balance) 26 self.interest_rate = interest_rate def withdraw(self, amount): pass def apply_interest(self): pass class SavingAccount(Account): def __init__(self, number, balance, credit_range): Account.__init__(self, number, balance) self.__credit_range = credit_range def withdraw(self, amount): pass 27 class Customer: def __init__(self, name, address, dob, card_number, pin): self.name = name self.address = address self.dob = dob self.card_number = card_number self.pin = pin def verifyPassword(self, password): pass class ATM: def __init__(self, location, managedby): self.location = location self.managedby = managedby 28 def identifies(self, customer: Customer): pass def transactions(self): pass class Bank: def __init__(self, code, address, account: Account, atm: ATM): self.code = code self.address = address self.account = account self.atm = atm self.__revenue = 0 def __manages(self): 29 pass def __maintains(self): pass def _printRevenue(self, revenue_from, revenue_to): pass class ATMTransactions: def __init__(self, transaction_id, date, transaction_type, amount, post_balance): self.transaction_id = transaction_id self.date = date self.transaction_type = transaction_type self.amount = amount self.post_balance = post_balance 30 def updates(self, account: Account): pass if _name_ == '_main_': account_1 = Account('132931451545EE', 14044.55) ATM_1 = ATM("street no. 43", 'manager') Bank_1 = Bank('043AAS5', 'bank_address', account_1, ATM_1) print(Bank_1.account.number) print(Bank_1.atm.location) TASK 4 Discuss two software quality attributes thut are spplicable to the project 1. SOFTWARE QUALITY:The software quality can be defined as the ability of a software to function as per the user requirement. In case of software products it must satisfy every functionalities specified in the SRS (Software Requirement Specification) document. 31 Software quality must ensure the following: i) Inorder to please users, the product must be designed in a good and aesthetic manner. ii) The software should be reliable without any issues and should be durable. iii) Software should have consistence performance over all platforms and devices. iv) It should be maintainable by fixing bugs and can add enhancements. v) it should be value for money. For ensuring these, a software quality model can be used. when we look on measuring the quality of a software, there are 3 widely accepted models • • • McCall’s Quality Model Boehm quality model Dromey’s quality model Using any of these models, we can ensure whether the quality of a particular software will met or not. 2. SOFTWARE QUALITY ATTRIBUTES:• They are the features that ease the computation of performance of a software product by the professionals in the field of Software Testing. 32 • • High scores in such attributes enable software architects to guarantee that a particular software application will perform as per the specifications that will be provided by the client. software qauality attributes are Correctness, Reliability,Maintainability, Portability, Adequacy, Learnability, Robustness, Extensibility, Readability, Testability, Efficiency. i) CORRECTNESS :The correctness of a software system refers to the harmony of program code with their specifications. ii) RELIABILITY :A software system could be seen as reliable if the test produces a very low error rate. It must ensure correctness and availability. iii) MAINTAINABILITY:A software can be maintainable. that means we can fix errors and can extensible. iv) READABILITY:Ensures consistency, correct representation, quality of documenting, programming style etc. v) EXTENSIBILITY:It allows some required modifications at an appropriate location that is to be made without any side effects. 33 vi) PORTABILITY:It refers to the ability to work on any platforms. vii) EFFICIENCY:iIt is the ability of a software system to carry out its purpose with a best possible utilization of all of the necessary resources like time, peripherals etc. viii) LEARNABILITY:It include the user interface design and the simplicity & clarity of user instructions. ix) ROBUSTNESS:- It reduces the impact of operational mistakes,hardware errors & erroneous input datas. 3) ASSESSING SOFTWARE QUALITY ATTRIBUTES :• • • • • Efficient testing & measuring of our software for quality is the only way to increase the number of releasing high-quality software in current development environments. We can measure the reliability of a software by counting the number of higher priority bugs that was found in production. We can also use load testing, which will check out how well the software will functions under an ordinary conditions of use. For measuring the performance efficiency. Load testing is also useful. We can measure the security by assessing how long it will takes to fix or patch the vulnerabilities in software. 34 • • Counting the number of lines in a code is used to measure maintainability. A software with large number of lines of code is difficult to maintain. This means that updations are more likely to lead some errors. We can check the delivery rate by counting the total number of software releases. Software Quality Attributes include: (a) High Availability (b) redundancy (c) Security (d) Flexibility (e) Traceability (f) Maintainability (g) Testability (h) High Reliability (i) Robustness (j) Efficiency (k) Compatibility (l) Modularity (m) Adaptability (n) Recovery (o) Integrity (p) Manageability (q) Usability (r) Accessibility (s) Affordability (t) Scalability (u) Dependability • • • • • • ISO9000 Series of Quality Management System: ISO stands for International Organization for Standardization. This organization was formed in Geneva, Switzerland in 1946. Here quality is defined as the "totality of characteristics of an entity that bear on its ability to satisfy the stated and implied needs". Characteristics: Means the features. Entity: Refers to the Products of Services. Stated needs: Needs to be satisfied as per Contract. Implied needs: Needs implied or expected to be satisfied. The objective of ISO 9000 series is the establishment of a Quality management System(QMS), which has international acceptance for the benefit of both the suppliers and the customers. The QMS attribute includes: Universal Acceptance - acceptable to all. Current compatibility - compatible with the present business set up. Forward compatibility - compatible with future requirements of the business. Forward Flexibility - flexibility to make changes in the future. 35 • • • • ISO 9001 comprises of 3 systems and 20 elements: - System Management: Elements are (1)Management responibility, (2)Quality system, (3)Corrective and preventive action, and (4)Internal quality audit. - System Methodology: Elements are (1) Contract review, (2) Design control, (3)Documentation and data control, (4) Purchasing, (5) Control of customer supplied product, (6)Product identification and traceability, (7)Process control, (8)Inspection and testing, (9) Control of nonconfirming product, (10) Handling, storage, packaging and delivery, (11) training, (12) Servicing and (13) Statistical techniques. - System Mainteneance: Elements are (1) Control of testing and inspection equipments, (2) Inspection and test status and (3)Control of Quality records. Various Communities addressing Software Quality Attributes: There are different communities that concern the properties of critical systems to develop them, important are:(a) performance, (b) dependability, (c) security and (d) safety. 36 The designers need to analyse tradeoffs between multiple confliting attributes to satisfy user requirements. Discuss how the design techniques and approaches that you have used can help improve the software quality. Software Quality We can say that it is an abstract concept and its presence is a little difficult to define but its absence can be easy to feel instantly. When talking in the context of software engineering, software quality is responsible for measuring how good the software is designed in terms of quality of design and how well the software conforms with the design which signifies the quality of conformance and most of the time it is described as the fitness for purpose for a piece of software. It is a study and practice which describes the desirable attributes of software products. Quality of the design and of conformance to that design is an internal aspect of the software and fitness for purpose states whether the software fulfills its purpose or not and it is the satisfaction of requirements. definitions 37 • The software quality can be defined as the capacity of the software program to feature as per consumer requirement. When it comes to software program merchandise it should satisfy all the functionalities written down in the SRS document. • Quality software program within reason computer virus or defect-free added on time and within budget, meets necessities and/or expectations, and is maintainable ------------Types of Software Testing Software testing is divided into functional testing, nonfunctional testing automation testing and their different types. Each of these types of testing has its own pros, cons, and features and here I am listing some of the testing types and its subtypes Functional Testing types include: • • • • • Unit Testing Integration Testing System Testing Regression Testing Beta/Acceptance Testing Non-functional Testing types include: 38 • • • • • • • • • Performance Testing Load Testing Stress Testing Volume Testing Security Testing Compatibility Testing Install Testing Recovery Testing Reliability Testing 39 Powered by TCPDF (www.tcpdf.org) Index of comments 2.1 Not good format of reports with not consistent words and heading Student need to complete tasks as structure of assignment posted on google classrooms. Many parts are not completed as required. Reading instructions about assignment on google classom as tutor mentioned. Powered by TCPDF (www.tcpdf.org)