Principles of Software Engineering

Verified

Added on  2023/01/13

|21
|5338
|99
AI Summary
This document discusses the principles of software engineering and their application in developing reliable and efficient applications. It covers topics such as use case diagrams, class diagrams, and sequence diagrams to model functional requirements. It also explores different software development life cycle methodologies and their implementation.

Contribute Materials

Your contribution can guide someone’s learning journey. Share your documents today.
Document Page
PRINCIPLES OF SOFTWARE ENGINEERING
1

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Contents
INTRODUCTION...........................................................................................................................3
PART A...........................................................................................................................................3
Produce a use case diagram to model functional requirements...................................................3
Produce class diagram that model the system structure and proposed the potential solution.....5
Produce the sequence diagram to model functional needs..........................................................8
PART B.........................................................................................................................................10
Discuss about the software development life cycle methodology with example......................10
Critically reflect on professional, security, ethical and social issues related to design or
development...............................................................................................................................14
CONCLUSION..............................................................................................................................17
REFERENCES..............................................................................................................................18
2
Document Page
INTRODUCTION
Software engineering is basically defined the process of analysing user requirements and
then building, designing and testing the entire application. In order to satisfy those requirements
in which help for obtain the software in reliable and work efficiently. The report is based on the
“Hasting dental care house” that will develop a new system for manging and controlling the
operational functions. The report will discuss about the use case diagram to model the functional
requirements for representing the necessary actors that perform significant operation. It will
describe about the class diagram to represent the system structure for proposed the potential
solution. Furthermore, it reflects on the professional, security, ethical and social issues related to
design or development. The documentation will describe about the software development life
cycle methodology that useful for designing system structure and its functionality.
PART A
Produce a use case diagram to model functional requirements.
A use case diagram is based on the model that capture system functionality and user
requirements with the help of actors (De Lessio, Wynn and Clarkson, 2019). It useful for
modelling the service, function and task that needs to perform effectively. Use case must contain
high level of functionalities whereas how user can handle the system activities. It is core concept
in terms of unified modelling language that consists of persons, various things invoke the
features. In this way, it will be considered as dynamic behaviour that capture behaviour of live
system. The use case model is responsible for visualising the internal or external things.
Figure 1 Use Case Diagram
3
Document Page
In above diagram, it has summarized that use case diagram is representing flow of information
and also give prevail other for purpose plan of their development. In this way, it can easily
understanding the different operation performed within “Hasting Dental system”. It is considered
the high level of diagram that mainly show the system or application. It can be divided into
different element or components that mainly used on Hasting dental system such as
Systems
Actors
Use cases and Relationships
Use case description
Use case Use case of hasting dental new system.
Actor Admin
Staff
Patient
Description The use case is mainly representing the overall
functionality that performed before
appointment. The patient will use new system
to book appointment and check time slot. First
of all, patient login the system to enter details
and send request through SMS. Afterwards,
staff members have been confirmed the online
booking and provide time, date and
information of regular doctor. After
confirmation, it has been successfully making
payment.
Flow of event Patient login system for track the
number of booking and select the
4

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
particular time slot.
Patient update the details on the system.
User can book appointment and staff
member give confirmation to the
patient.
Admin has recorded the details of
patient in the system.
Choose Payment Option and
Successfully completed in proper
manner.
Pre-condition Patient and staff members must require to exist
account on the system so that they can easily
check information.
Post-condition The pre-booking appointment must be
created by staff members.
Each payment also created and
associated by individual users.
Alternative exceptions The details of patient are already present in the
system. Admin staff needs only as a key
identity where system automatically display
information about particular customer.
Non-functional requirement Reliable system
Performance
Dependability
Privacy and security
5
Document Page
Table:1
Produce class diagram that model the system structure and proposed the potential solution.
A class is a blueprint for particular object that mainly used for designing a new system. it
is based on the static structure representation whereas they are showing the system classes,
attributes, methods and relationship between objects (Fernandes, 2019). All classes are arranged
in the groups that easily share common characteristics among them. It also resembles a flow
chart in which classes are designed in box whereas each one having specific attributes.
Figure 2 Class Diagram
From the above figure, it can be implemented the classes HDCH management system. It also
seen the Relationships between different classes. In above figure-2, It can be described the
different classes and their attributes. Each class has established the relationship with one or more
classes. It is mainly including patient, booking, Customer, staff, administrator, doctor and
manager.
For Example- In patient class, it also represents the attributes such as id, name, gender
and age whereas operations are shown in third partition. Patient class creates relationship with
booking class whereas both are performing operations. Patient is to search the information on the
system for searching booking time, date and status. In this way, it can be developed the
relationship between patient and booking classes.
6
Document Page
In staff class, it also represents the different attributes such as staff_id, name, email,
phoneNo and address. Staff has established the relationship with patient, customer and admin.
Classes Attributes Methods
Patient Patient_id: integer
Name: text
Gender: text
Age: number
Search ()
Edit()
Delete()
Doctor Doctor_id: integer
Name: text
Email: Varchar
PhoneNo: number
Address: Varchar
Specialist: varchar
Operate ()
Treat()
Manager Name: text
Gender: text
Email: varchar
PhoneNo: number
Loadequipment()
Get logistics()
Staff Staff_id: number
Name: text
Email: Varchar
PhoneNo: number
Address: varchar
Update()
Delete()
Admin Name: text
Gender: text
Email: varchar
PhoneNo: number
Update()
Modify()
GetLoad()
record()
Booking Booking_id: integer
Date: date
Time: timestamp
Status: text
Get status()
7

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Customer Name: text
Gender: text
Email: varchar
PhoneNo: number
Medical note: varchar
Search()
Edit()
Table:2
8
Document Page
Classes are interrelated to each other in proper manner when relationship in class may include
various type of logical connections. It can be divided into different groups: association,
Aggregation, multiplicity, generalization, directed association and realization.
Association: It is term that mainly encompass with the logical connection and
relationship between two different classes. For example- in above diagram, it can be
identified the association between staff and admin.
Direct association: It mainly refers to the directional relationship between two classes
where it can be represented by line with arrowhead (Fry and Potter, 2019). It depicts a
container for containing directional flow. For example- In above diagram, it can be
representing the direction association between staff and customer. Staff coordinate with
client to provide information about the booking details.
Multiplicity: it is based on the active logical association when it has established the
cardinality of class in relation to another class. It may include multiple entities that
represent zero to many. For example- staff and patient has contained relationship between
each other. It is also representing in the form of 0..* notation.
Aggregation: It is defined as the formation of particular class whereas one class being
aggregated to another and build a relationship between them. In the aggregation, classes
are not strongly dependent on the particular container.
Composition: it is representing the relationship that similar to the aggregation relation.
Main purpose of emphasizing the dependence with contained classes in the life cycle. For
example- it has developed the composition relationship between doctor and patient. one
class will be obliterated when container class is easily destroyed. In above diagram, it can
be shown the composition relationship in UML by using directional line connecting two
classes and also filled with diamond shape.
Produce the sequence diagram to model functional needs.
A sequence diagram shows the interaction between objects where it can be arranged in the
specific time intervals (Hadar, Sherman and Hazzan, 2019). It also depicts the classes and
objects involved as per given scenario. In this way, it has sent a sequence of messages and
exchanged between the objects that needed to carry out the overall functionality. The purpose of
sequence diagram is to model high level interaction among active object in the system which
maintain the collaboration for visualisation.
9
Document Page
Figure 3 Sequence Diagram
In above diagram, it represents the sequential communication between customer, staff and
administrator. For example- The customer sends the request to staff for establishing an effective
communication between them. After sending a request, staff give response to customer in
regards of appointment booking.
In this way, it can be defined that sequence diagram is a type of interaction, which mainly
focused on the message interchange between lifelines. There are different nodes and edges drawn
in above diagram. It involves lifeline, combined fragment. Message, interaction use,
specification of execution, state invariant and destruction occurrences.
Lifeline: it refers named element which mainly represents as an individual participants
role plays interaction. While it may apply the features and parts in terms of multiplicity.
In another way, it also referred the connectable element such as multivalued and lifeline
show as an expression. It mainly specifies which part is represented.
Gate: It is a type of message end, which connecting point in related to message outside
of interaction with inside interaction fragments. The primary role of gates and messages
to build communication between them. In this way, it also specified the concrete sender
as well as receiver. there are different types of gates used in sequence diagram such as
actual gates, formal and expression gates.
10

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Interaction Fragment: this type of fragment is mainly representing the most interaction
unit where each one is based on the conceptual like an interaction through itself. It is
mainly dividing the subclasses by using specific notation.
Execution occurrence: It is based on the occurrence which mainly represents moments
in time at which perform different actions during start to finish end (Jolak, 2020). The
references of execution occurrence exactly the same type of specification which mainly
described that start or finish at the execution occurrence.
Execution: It is considered as an interaction fragment whereas it represents a period in
the participants of life time. In this way, it can be identified the unit behavior and action
within lifeline whereas sending a signal to another participants. In most of cases, it may
include the behavior when it is not active but also waiting for reply. It is calculating the
duration of execution which represented by two different execution occurrences such as
start and finish.
PART B
Discuss about the software development life cycle methodology with example.
The software development life cycle is defined as process for performing different
operations in the industry approach to manage phase of software development. It is equivalent to
the scientific method for software development and initiatives towards system. This type of
SDLC may be break down the different phases that trace the requirement of new system. in order
to make plan idea while release into maintenance and its operation. There is flexibility within
Software development life cycle (Lestari, Rahman and Hidayat, 2019). In recently, there are
large number of models and method gained more popularity. Software development life cycle
works by minimum price of new system development while simultaneously improving the better
quality and also reduce the production time. In order to achieve the divergent goals through
making an effective plan which can easily remove pitfall in the software development project.
The plan must be started by evaluating existing system. in this way, it can be determined the
deficiencies and also understand actual requirement of system. Software development
methodologies are performing various stages so that it has limited chances of failure. It
automatically eliminates the redundant rework effectively and efficiently.
SDLC allows for completing the task in right ways and control high level of management
in the form of documentation. The designer understands that what they should build and why.
11
Document Page
Because it is important for developer to identify the benefits, advantages of organization in term
of expansion. The plan will help for identifying the essential resource and price of equipment’s.
there are several pitfalls can easily turn in software development life cycle implementation. It is
failure to take into account that require of consumer.
There are different types of SDLC methodologies useful in the system development. it
involves waterfall, iterative, V-Model, agile, Prototype and RAD.
Prototype methodology refers as software development model in which test prototype builds and
then reworked when specific requirement for new system upgradation. In this way, it also creates
the base line to produce the final system. Prototyping is an attractive idea in term of large system
because there is no manual process or any other existing system which help to identify essential
requirements (Schewe and Thalheim, 2019). The risk associated with project that are being
reduced by using prototyping model. This type of method is starts with the preliminary version
of requirements specific documents. The prototype model is similar as waterfall because it
intended to develop the prototype with customer interaction. In this way, there will be less
chances of rejection from customer side because the system developed on behalf of client
reviews. Afterwards, it has made a plan to follow specific requirement and develop an effective
system
In the new system development, it can be used the prototype model that help for
designing actual software. First of all, it will create the prototype which are build prior to actual
software to get the valuable feedback from customer side. Afterwards, it will be implemented the
design and prototype again review. In this way, it easily fulfils the need and requirement of
users. The methodology can be used the dummy function to create prototype which become
valuable mechanism for understanding the requirements of consumers.
At every stage, there is a reason behind to understand overall system but it is necessary to
clear all doubt in proper manner. After the prototype has been developed, it provides an
opportunity of user and client to use prototype design. They can provide feedback to the
developer in regards of prototype. It is the best way to identify the overall strength and weakness
of system. in this way, developer can be modified as per requirement and do some changes as per
requirement.
The prototype methodology consists of various phases that help for developing new
effective system.
12
Document Page
Step:1 Gathering the requirement and analysis
A prototype method is generally start with the requirement analysis. It is initial phase of
system requirement to define in detailed manner. During processes, the user can view the entire
system to understand that how it will be operating in properly (Youm, Seo and Kim, 2019). As
per scenario, new system supports the different task which carried out booking, updating
appointment, deleting and managing the business resources. It provides the facilities of patient to
use system effectively and efficiently. These types of requirement are gathered or analyse and
then implement into system so that they can easily perform operational task to handle the
functionality of system as per requirement.
Figure 4 Prototype model
(Source: Prototype model. 2018)
Step:2 Quick design
It is the second phase in which concern about the preliminary design while simply create
architecture of system as per given scenario. The design is not properly complete but provide a
brief idea about the system (Vijayasarathy and Butler, 2016). it is useful for developing the
prototype of new system. In this phase, developer can analyse the information and developing
prototype which provide an idea about the overall system and its functionality. It is based on the
quick design which means, it considers as a rough idea to collect large amount of data and
convert into structure format.
13

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Step:3 Build a prototype
In this step, the actual prototype has designed on the basis of information gather from
quickly manner. Information gathered from quickly design can be modified in the form of
prototype which represents the working model of existence system. it is important phase of
prototyping model which created a prototype and also consider the necessary requirement of
system. in this way, it helps for identifying working flow of required system.
Step:4 Initial User evaluation
After designing the prototype, it can be represented the system to the user and evaluation
of prototype design easily recognise the actual weakness and strength (Riaz, Mahboob and
Buriro, 2018). In this phase, it directly coordinates with the users and collect their suggestions or
comments in regards of new system functionality. It is the most suitable process for evaluating
the design pattern of system while maintain their functionality in proper manner.
Step:5 Refining the prototype
Once user evaluate the prototype and identify that user is not completely satisfied with
design pattern. At that time, it can be refined the current prototype as per specific requirements.
In this way, it is important to develop new prototype while adding more information that
provided by user. The process continuously running until if all requirement fulfils in specified
manner while meet to the user expectation (Arango-López and et.al., 2017). Once user satisfied
with the new prototype design where final system can be developed on the basis of given
scenario.
Step:6 Implementing the product and maintain
It is the last step where requirements are completely met and user easily accept to the
final prototype. In this way, the final system is evaluated and followed by maintenance on
regular basis. Therefore, it helps for preventing to minimize the failures as well as downtime.
After developing the new system, it must be monitored the functionality of system where how it
can perform different functions in proper manner.
The client evaluates the new software and if client is not satisfied then develop again
refine according to consumer requirement (Balle and et.al., 2018). It will try to change the
functionality and add more features. The process goes on until client need do not properly
accomplished. After the customer satisfaction with new system, finally adopting the system in
14
Document Page
business perspectives. On regular basis, thoroughly evaluated, maintenance and tested in proper
manner.
Critically reflect on professional, security, ethical and social issues related to design or
development.
In today’s world, Software design phase has evolved from ad-hoc and understand the
different phase of development life cycle. Furthermore, it has been rapidly increasing the
complexity in today’s system that creates a set of particular challenges. It makes hard for
developer to meet with continuous fulfil demand of consumer (Harris and Kruck, 2019). I also
committed towards the different phases of system development such as design, analysis, testing,
specification and maintenance of software. It is beneficial for professional to increase the
demand of new system in global marketplace.
In my personal experience, I have understood the trained professional, who are providing the
better customer services by designing an effective system. I have seen that developer must
always familiar with security, professional, social and ethical issues that pertain to enterprise in
which operating on web developer. Currently, I have found that there are various laws related to
the web enterprises and practices. However, I also realised that legislation is not baseline for
conducting and observing the legal right whereas it can handle the system operations and its
functionality. I could determine that developer must consider the professional standards of
conduct. Therefore, it deals with ethics in both right and wrong ways. I also identified the
practices that are still legal but in unethical manner. Being a developer, I also support to handle
the responsibility related customer and inform them of practices. During new system
development, it always helps for me to make decisions and also conduct the business which
reflect on the knowledge and idea towards the new system design.
Ethics are basically set of standards governing the conduct of members in professions.
According to my opinion, it can establish the basic value for responsible action and practices
towards the society. I have considered the common ethical issues in the new software
development.
15
Document Page
There are multiple type of unsolicited bulk email and spams.
It also increasingly the spread malicious program codes such as worms, viruses and so
on.
It can pass along with e-mail text messages especially when it will create a threat.
Honesty is important with the customer and reduce to overcharge for technical services
otherwise, it will be increased the misunderstanding between developer and user. During
new system design, they can face the difficulty in the operational tasks.
According to me, it is very important to maintain security and privacy in term of
professionalism because in software development. there are various information’s gathered
through customer and determine the strength and weakness of new system. In this way, it
become easier for me to change or upgrade as per requirement (Rohr, 2017). I must consider the
ethical professionalism in the new system development whereas provide information to users as
how they can use overall system in proper manner.
As per experience, I believe that privacy standards important which essential on collect
information beyond the normal log files. As I have used the privacy policy in detailed manner
which help for gathered information whether it transferred into third parties. The privacy
statement should be open and honest. Therefore, in future as considered as security professional
in term of software development. I must understand the scope of legal as well as ethical
responsibilities. I can play important role for manging the liability for security and privacy risks.
In modern society, legislation always enforced in the civil courts where large damages can affect
on the overall business organization. I have realised that reduce risks from physical threats and
also reduce the loss from legal actions. In order to ensure that putting more efforts and making an
effective system, which help for performing various type of operational tasks.
Apart from that security issue becomes an important part of design process where it has
occurred the various mistakes and compiled from their organizations. As per my experience, it’s
not all about the security bugs but there are lot of mistakes identify in the software application.
Before starting to develop new system so as I have suffered the major problems related the data
breaches. It only targets the entire system operation and its functionality. Currently, I could
determine that security and privacy are growing among the various technology. The primary
concern when designing and implementing new system so that it requires to handle the large
16

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
amount of sensitive data in proper manner. At that time, it also considered the security issues
while implementing the suitable plan for maintaining and controlling entire system. I can try to
manage security and risk management work in side by side. In order to reduce the negative
consequence within new system. As per discussion, I could determine the security issue such as
insider threats, misconfiguration or change. The insiders are generally high degree of trust within
organization so that it become easier to access critical information. Thus, lack of centralised data
that will not control the inappropriate access control (Mardis and et.al., 2018). Therefore, it will
increase the situation of disaster. Sometimes, I have found that overall system should not
working properly. On the other hand, I have performed the significant duties while need to check
privileges of users from time to time and also stored the sensitive information by application.
Another security issue lead to unintended changes, misconfiguration and so on.
I have analysed that ethical tension is the biggest issue that would be addressed by
thoughtful consideration in term of fundamental principles rather than developing detail
regulation. In this way, I influence through principles for identifying that who were affected. In
ethical, it will require to use the code of ethics, which are adaptable and relevant to new situation
as they occur during new software design. Generally, I have found that code of ethic provide
support for me to implement the new features and take positive action in specific case through
documentation. Otherwise, I have seen the ethical issues related misleading the information of
system and loss of customer data.
In term of social, the new system influenced by underlying the culture or software that
should be recommended for different backgrounds. That’s why, I could try to aware about the
social issue and take action for develop an effective system that does not exclude the culture and
economic groups. As move towards development, I mention all type of culture related software
whereas users easily adopt in their daily life.
17
Document Page
CONCLUSION
From above discussion, it concluded that Software engineering is a conceptual term that
mainly used in the system design for analysing user requirements and then building, designing
and testing the entire application. In order to satisfy those requirements in which help for obtain
the software in reliable and work efficiently. The documentation is based on the “Hasting dental
care house” that can develop a new system for manging and controlling the operational
functions. it has summarised about the use case diagram to model the functional requirements for
representing the necessary actors that perform significant operation. The class diagram is also
representing the system where how it can build coordination between one or more classes. It can
be identified the professional, security, ethical and social issues related to design or development.
it can be discussed about the software development life cycle methodology and used for system
development.
18
Document Page
REFERENCES
Book and Journals
Arango-López, J. and et.al., 2017, July. A systematic review of geolocated pervasive games: a
perspective from game development methodologies, software metrics and linked open
data. In International Conference of Design, User Experience, and Usability (pp. 335-
346). Springer, Cham.
Balle, A.R. and et.al., 2018. How do knowledge cycles happen in software development
methodologies? Industrial and Commercial Training.
De Lessio, M.P., Wynn, D.C. and Clarkson, P.J., 2019. Modelling the planning system in design
and development. Research in Engineering Design. 30(2). pp.227-249.
Fernandes, D.O., 2019. Design and development of a precision packing stage and master control
system for an automated vial packaging machine (Doctoral dissertation, Massachusetts
Institute of Technology).
Fry, C.C. and Potter, S.P., 2019. The Design and Development of a Multi-Disciplinary Project in
Embedded Systems Design. In ASEE Gulf-Southwest Section Annual Meeting 2018
Papers. American Society for Engineering Education.
Hadar, I., Sherman, S. and Hazzan, O., 2019. Learning human aspects of collaborative software
development. Journal of Information Systems Education. 19(3). p.8.
Harris, A.L. and Kruck, S.E., 2019. Incorporating ethics and social responsibility in IS
education. Journal of Information Systems Education. 22(3). p.1.
Jolak, R., 2020. Understanding and Supporting Software Design in Model-Based Software
Engineering.
Lestari, N.S., Rahman, T. and Hidayat, R., 2019, July. Development of E-Learning Application
using Web-Based Tools to Improve Learning Effectiveness (Case Study: STT Mandala
bandung). In Journal of Physics: Conference Series (Vol. 1179, No. 1, p. 012041). IOP
Publishing.
Mardis, M.A. and et.al., 2018. Assessing alignment between information technology educational
opportunities, professional requirements, and industry demands. Education and
Information Technologies. 23(4). pp.1547-1584.
Riaz, M.N., Mahboob, A. and Buriro, A., 2018. Social Success Factors Affecting
Implementation of Agile Software Development Methodologies in Software Industry of
19

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Pakistan: An Empirical Study. International Journal of Advanced Computer Science and
Applications. 9. pp.94-98.
Rohr, J., 2017. Ethics for bureaucrats: An essay on law and values. Routledge.
Schewe, K.D. and Thalheim, B., 2019. Design and Development of Web Information Systems.
Springer Berlin Heidelberg.
Vijayasarathy, L. and Butler, C., 2016. Choice of Software Development Methodologies. IEEE
Computer Society.
Youm, D., Seo, S. and Kim, J.Y., 2019. Design and development methodologies of Kkongalmon,
a location-based augmented reality game using mobile geographic information. EURASIP
Journal on Image and Video Processing, 2019(1). p.1.
Online:
Prototype model. 2018. [online] Available through:<
http://ecomputernotes.com/images/Prototyping-Model.jpg>
20
Document Page
21
1 out of 21
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]

Your All-in-One AI-Powered Toolkit for Academic Success.

Available 24*7 on WhatsApp / Email

[object Object]