CS计算机代考程序代写 python Software Engineering

Software Engineering
COMP3297

Our Software Engineering Team
Teachers
G R Mitcheson (Me)
George
Dr. K M Lam
Carmen
TAs
M Y Cheng
Jolly
Y K Lam
Kevin
Contact details are posted on Moodle.
Catch us online during consultation hours. 2
COMP3297: Software Engineering

What this course is about:
It is an introduction to the field of software engineering.
We introduce the fundamental: – principles,
– methods,
– practices,
– tools…
…used currently in our industry to – develop, and
– maintain…
…good software systems.
COMP3297: Software Engineering
know what
bridging the skills gap
‘correct’ application of knowledge and skill for a particular context.
The professional values behind a competency.
know how
“Professionally accomplished
rather than simply completed.” ACM CC2020
3

Course focus:
Agile development.
But extreme forms of agile are not the
best approach for all kinds of system. Need disciplined agile development.
And we also introduce other approaches.
COMP3297: Software Engineering 4

What is software engineering?
An engineering discipline…
Our (long!) working definition:
Software Engineering is the process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints and in the context of constant change.
COMP3297: Software Engineering
5
Project or Product?
…concerned with all aspects of software production, not just the technical aspects.
Sommerville
Lethbridge

What kinds of systems?
The definition indicates systems that are typically:
large and complex (although methods also work for smaller systems) built by teams (systems too large for a single person to develop…but
SE methods are also useful in single-person projects)
built for other users, often for other domains
used and maintained for many years
exist in many versions and modified many times during their lifetime
– including during initial development
Recurring themes: Handling complexity and handling change COMP3297: Software Engineering 6

Biggest problem we have teaching this course?
Convincing you that:
Being a good programmer is not enough.
There is a reason there is no “Programmer” role at Google.
Software Engineering is more than Programming.
Anyone can learn to program. That doesn’t make them software engineers. We don’t even teach programming in this course. We teach software
process. Programming is the easy part. Be more than a code monkey!!
COMP3297: Software Engineering 7

An analogy:
Would the same approach work for this?
Code-and-fix programming
The way some students do their programming assignments.
Is it a good solution?
COMP3297: Software Engineering
8
No! It must be
engineered.
Software Engineering

You might not like it!
Some students like this course a lot
Some hate it
But, love it or hate it, you can’t escape it.
Software engineering is how software is developed in industry. It is engineered.
If you want a serious career in software development, you need to master software engineering.
COMP3297: Software Engineering 9

Outcomes 1
Software engineering foundation
You will understand the software development process.
You will understand process activities, including the analysis, design, implementation, testing and deployment of modern software systems.
Software engineering methodology
You will be able to apply the software process and process activities to real-world software development. Proof? You will deliver a product at the end of the course.
COMP3297: Software Engineering 10

Outcomes 2
Software engineering techniques and tools
You will be able to use industry standard tools and techniques for software development.
Software engineering practice
You will be able to plan, work and contribute effectively as a member of self-organizing software development teams.
COMP3297: Software Engineering 11

The Detailed Description on the CS page is still for an older version of this course. Our actual Description was updated 2 years ago and again this year.
The next two slides have the latest version:
Individual “Pre-” project in Part 1
COMP3297: Software Engineering 12

Group project in Parts 2, 3, and 4
COMP3297: Software Engineering 13

Group project in Parts 2, 3, and 4
But how about BBA(IS) students?
COMP3297: Software Engineering 14

The Project
We want you to apply the same techniques and process that are used to develop the software equivalent of this –>
But we only have a few weeks. So we need to have a MUCH, simpler project. More like –>
Warning: a single skilled student could complete the coding and deliver the application in a few days.
But if you do that, you are missing the point of the project. We want you to get experience with software process and all its
aspects, not just the final executable product.
COMP3297: Software Engineering 15

The Project
Tools, frameworks, platforms, etc:
unittest
( optional )
COMP3297: Software Engineering
16

The Project
The Individual “Pre”Project
Here you’ll develop a simple application related to the course group project. The objective is for everyone to get direct experience of developing on a Web framework and deploying.
We introduced the Individual Project last year. In previous semesters we found some project team members avoided contributing anything to their project’s code base and, as a result, learned very little about actual development.
The Individual “Pre”Project solves that problem.
The Group Project
Here you work in a team to develop several incremental releases of the course project.
This will follow the Individual “Pre”Project.
COMP3297: Software Engineering 17

Weighting
Coursework 50%
Individual Pre-Project: 12%
Group Project: 30%
Exercises and/or small Individual Assignment(s): 8%
No Quiz
Final Examination 50%
COMP3297: Software Engineering
18

Group Project FAQ
Why do we have a group project?
Because all real software engineering is done in teams.
Organizing and working effectively with others is important for success as a software developer.
What will our project involve?
Everything from requirements capture to product delivery, including deployment and delivery of increments during development.
Just large enough to achieve the objectives of the course…
…but not so large it kills you! Unless…?
COMP3297: Software Engineering 19

Group Project FAQ
Is there any coding?
Yes. To experience modern process you need to create executable software increments and deliver a working product.
What backend language/framework?
As earlier: Python on Django
We assume you know how to code. And, like in industry, we assume you can self-learn these technologies.
Any choice?
No.
What about front-end technologies?
Your choice. If your product functions as required, that is sufficient. You
won’t be graded on the beauty of your UI, but design and usability is
important.
COMP3297: Software Engineering 20

Group Project FAQ
Schedule of Project Activities
There are several project activities such as client interviews and demos that need to be done online outside of class hours.
We’ll offer a batch of timeslots – you will be able to choose your timeslot, first come, first served. The schedule will be posted well in advance.
COMP3297: Software Engineering 21

Project Team FAQ
What is the team size?
Teams will have at least 5 members, but you can’t select all of them.
Can we choose our own teammates?
Yes, but only up to a point.
You can form groups of 3, 2, or register on your own. You will do this via Moodle before Lunar New Year. We’ll announce when we are opening group registration. We’ll then form the final teams of 5+.
COMP3297: Software Engineering 22

Penalties
Plagiarism
First Attempt: 0 marks
Second Attempt: disciplinary action at Dept. and/or HKU level
In this course, plagiarism also includes failing to contribute to the group project (known as free-riding). Most students who fail this course or who get a poor result have been free-riders.
23
Late policy – applies to all deliverables including project
1 day:
2 days:
3 days: > 3 days:
-12.5% of total available marks -25%
-50%
no mark
Tell us early in semester about any critical periods.
To be fair to all students, the closer it gets to a deadline the smaller the chance
that the deadline will be extended.
COMP3297: Software Engineering

Where to find information and help
Everything will be posted on the course Moodle page All important dates, etc. will be announced in the:
News Announcement Forum
As usual, you can post questions in the:
Course Discussion Forum
Guideline: when you post a question about course material, help us by posting your best guess at an answer so we can understand your problem. For Assignments and Exercises, please don’t post your solution!!
Do talk to us online.
COMP3297: Software Engineering 24