Topic- PRINCIPLES OF SOFTWARE ENGINEERING
This report considers two parts:
- PART A: Software design and project prototype (2000 words)
- PART B: Critical-Evaluation (2000 words)
LEARNING OUTCOMES
- Present critical knowledge & perceptive of proper software engineering theories, technologies & methodologies. (PART A)
- Capabilities to utilize software engineering learnings to a complex business challenge or project. (PART A)
- Critically reflect on professional, legal, social, security and ethical issues related to the design, development and use of software in an organisational context. (PART B)
- critically evaluate your own Software Engineering skills (PART B)
- Present problem-solving skills in complex situations in regards to the design, development and use of software solution. (PART A)
Case Study on Hastings Dental Care House
Hastings council has built a new Central Dental Care House in the city and they want to create a new digital information management system. As they wewre using old system in which teh recording of data, updating and seraching is done manually. Now the director has realised that the fully computerised system is required to provide better service to client as wella s support the operations. It is expected that staff will use the new system to support and record the tasks they carry out including booking, deleting, updateing appointments, managing, and organising the use of business resources, logistics and facitilities. The customer acn book their appoinment in the hastings dental care, by two options:
- phone calls
- online bookings
The dental care house is open from Monday to friday. They can accomodate 44 patients per day and on friday they accomodate only 22 patients. By development of the new system they can keep records of the bookings. Appointment booking from phone can eb recorded in new system. If there will be available slot then only the booking will be confirmed. The confirmation of teh booking is done by teh new system via sending the SMS or by EMAIL. Any confirmation message should include all relevant information such as day, time and date, any special arrangements e.g. pickup and dropoff is needed.
If the customer is new so their contact details and name should be recorded in the new system. To complete any booking and before sending any confirmation, a £10 deposit for each appointment will be automatically taken/deducted form the patients account/balance. Patient can always cancel the appointment 24 hours before the appointment date/time, and the £10 will be fully refunded to patient. The director thinks that, it would be helpful if the new system alerts the customer automatically, when their balance is lower than £10. Also, if a patient is late (30 minutes) for an appointment, the system would cancel it and notify the admin and patient automatically. Moreover, the system will produce a warning for first time patient absence/late, and £25 fine if happens second time, and should notify the patient of this.
In the HDCH there are 6 doctors, 2 drivers, 2 administrationa nd managers and reception staff. All staff works for full time except driver, a freelancer. The administration staff deal with the scheduling and booking of appointments, along with enquiries, in addition, they should be able to appoint alternative doctors for patients in case the regular doctor is absent.
TASK : SOFTWARE DESIGN AND PROJECT PROTOTYPE
with teh help of case study provide the solution from the developed software architect perspective and consider the followings.
- Produce the case diagram to model the functional requirement from teh scenario.
- Screening actors and the use cases they perform.
- Use acquisition where essential for both cases and actors.
- Use of <<includes>> and <<extends>> where necessary.
- Use house style model to document one primary use case.
- Form the diagram to model the structure of system which si proposed for the potential solution. Distinguish the boundary, control and the entity classes. Include the design pattern. (if use teh design pattern, justify and if dont then also justify why).
- Detailed classess with the attributes/ variables along wiotrh the data type with access modifiers which are shown in adheranace to encapsulation principal of OOP and multiplicities of the relationships.
- Function or procedure as well as return type for class function.
- Use class relationships (e.g. dependency association, aggregation, composition and inheritance).
- Consider the use of design patterns in your proposed solution.
An example of a detailed class diagram
- produce the sequence daigram to the model of functional requirements from the scenario:
- Display actors & interacting objects.
- Methods for calls between objects with parameters and return types were necessary.
- Use of alternatives and loops where necessary.
An example detailed sequence diagram
Program: Form the proposed solution using OOP language such as Java with a modern IDE such as NetBeans. Produce a test plan and test cases.
TASK : REFLECTION AND CRITICAL EVALUATION
You are asked to write the report which includes critical discussion, reflection and evaluation. Include the followings in discussion:
- use software engineering literature and evaluate the SDLC methodologies which you have chosen for the solution development, with example.
Reflect on the legal, professional, social , security and teh ethical issues in context to the development and design of the solution.
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.
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 |
|
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 |
|
Pre-condition |
Patient and staff members must require to exist account on the system so that they can easily check information. |
Post-condition |
|
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 |
|
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.
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.
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 |
|
Search () Edit() Delete() |
Doctor |
|
Operate () Treat() |
Manager |
|
Loadequipment() Get logistics() |
Staff |
|
Update() Delete() |
Admin |
|
Update() Modify() GetLoad() record() |
Booking |
|
Get status()
|
Customer |
|
Search() Edit() |
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.
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.
- 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. 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.
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.
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.
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 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.
- 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 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.
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
Score Top Grades in Academics by Placing an Assignment Order
Concerned that you won't finish your assignment in time? Do not worry! Our writing service provides prompt, high-quality support. If you are looking for assignment help UK, you can contact Assignmentdesk.co.uk. We provide outstanding quality assignments at pocket-friendly prices to the students. We have a team of professional writers who can assist you with the assignment writing task and help you to score high grades. Our experts are also skilled in providing essay writing service UK, and they have vast knowledge in dealing with students writing problems. Our main motive is to relieve students' academic worries and help them get high grades in the semester. Contact us today and get the best writing services like dissertation help, custom writing help and much more.