Uploaded by cakhosolo1662002

Nguyen Khac Minh (FGW HN) 386324 0

advertisement
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)
Download